start indent refactor once again.

my idea is to implement the indent logic together with the hooks, that way we make things more explicit and avoid all the crazy rules that we had before.

this looks promising but will take some trial and error to "get it right".

will keep this PR open so that everyone can follow the progress and also so we get feedback from the travis builds.

fixes #141