Formatting around cursors feature

This pull request closes #54.

When a users presses Ctrl - K F and there is no selection, Fantomas tries to find a parseable block to reformat. 

The parseable block is:
 - delimited by `{` and `}`, `[` and `]`, `[|` and `|]` or `(` and `)`
 - and the smallest block around the cursor, which satisfies the condition above.

If no parseable block is found, the code is left as is.