Add Indentation linter

Add linter `Indentation` which detects incorrect indentation.

A lot of the supporting code that makes this possible was added in
previous commits. Many of the specs deal with edge cases that were
discovered in the process of implementing the solution.

There are potentially more checks that could be added, for example
ensuring code like the following:

    my-function(one,
    two,
    three);

...is indented as:

    my-function(one,
                two,
                three)

However, we shouldn't let the implementation of those more complicated
cases hold this back, especially when we can iterate on it later.

Change-Id: Iee101ba1d2d39c6965fddb4b67950b69e8c43ab4
Reviewed-on: https://gerrit.causes.com/29760
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>