Break on expressions after #if directives

The purpose of this mechanism is to insert an EOL so that expressions
right after #if directives can be indented properly.

This is implemented by collect all positions which have #if directives
right before.
Break on expressions after comments

This is intended to insert EOL and spaces for injecting comments.

To be able to do so, we annotate all positions right after comments.

autoBreakNln is changed to preserveBreakNln to make use of information
regarding comments and directives.

There are a few exceptions which should be handled in the future.
Hide implementation details of FormatConfig module
Widen the criteria for two identifiers to match