Do not apply indent on empty lines.

This manifested when BlockWriter had no Snippets to contribute but appended a trailing newline. The resulting code had trailing indent whitespace on after the open curly brace.

    public Foo() { // <-- trailing whitespace was here
    }

This change makes BlockWriter only responsible for the Snippets inside of a block. The parent type (MethodWriter and ConstructorWriter) are responsible for the newlines before and after, if needed.
Merge pull request #108 from square/jw/no-indent-on-newlines

Do not apply indent on empty lines.
Use intersection types on pre-Java8.