Use EndAlignment/AlignWith config param in IndentationWidth

Instead of allowing two ways of indenting the first line of an if/unless
body when the result is assigned to a varaible, we look at the
configuration of EndAlignment and require the indentation to follow
the AlignWith setting.
Support variable or keyword indentation for while/until

In assignments, while/until should work like if/unless in
IndentationWidth.
Refactor IndentationWidth: work with base instead of offset

It's better to work with the real base for the indentation than
with the normal base plus an offset that is used in some situations.
Merge pull request #828 from jonas054/more_strict_indentation_width

More strict IndentationWidth