Cleanup emitter interface

* Allow to instantiate emitters without emitting into buffer
* Add idempotent write_to_buffer (only writes once)
* Fix bugs where parent wasnt set to Emitter instance

This changeset enables an upcoming nice refactoring for terminated
expressions.
Elimiate whole class of "send to unterminated expression" class of bugs.

* Add a whitelist mechanism for "terminated" expressions.
* Let the child emitter tell if expression needs to be terminated
  explicitly
* Closes #8 and possible all non reported siblings
* Handle regular sends via Emitter::Send::Regular
* Remove lots of ungly code that deals with inserting parentheses
* Drop 1.8 support!
Bump version to 0.1.0