Update Stencil::Base to have #optional.

* Added optional support
* Added lambda support to optional
* Update README to use optional instead of attr_writer
* Update all specs to use optional instead of attr_writer