Add support for clearing DataWriter

Added new abstract methods to BaseModelProcessor.
The purpose of this change is to be able to make things in
BaseModelProcessor before initiating the custom code

Added clearWriterBeforeProcessing to BaseModelProcessor
Change things with clearing/closing writer

Auto-closing writing makes hard to build generic processors. User may very
well do it manually when it needs to be closed. Auto-clearing option is
still left as it is.
Change Builder to use Context instead of Writer and Mode
Refactor writing style configuration

Added new static write style configuration methods
Moved writing style configuration to own class
Add BaseModelCache and JavaScriptModelCache
Update copyright notices