Switch conditional order since 'void' is a primitive class.
Introduce Writeables.Joiner to simplify writing lists of Writeable objects
Merge pull request #109 from square/jw/check-void-first

Switch conditional order since 'void' is a primitive class.
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.