Fixes for compiler directives

This fixes #93 and #94, but the whole handling of compiler directives still needs a little bit of work, the spacing it produces is always what's expected.
A extra newline was sometimes also added after some `#if` declarations, fixed that too