Tracks the mod time and size of a formatter's executable in bolt.
The cache is busted using the following criteria:
- a new formatter has been configured.
- an existing formatter has changed (mod time or size)
- an existing formatter has been removed from config
Also implemented better resolution of symlinks when determining a formatters executable path.
Closes#2
Signed-off-by: Brian McGee <brian@bmcgee.ie>