Rendering modularization

Hi!

This is a pretty big pull request that refreshes the rendering architecture. With this patch:
   * JBake uses an internal, potentially in memory, database to store documents converted from markup engines
   * if using a local dabatase (default), then JBake now only renders pages that have changed
   * rendering can be forced using the --reset command line option
   * rendering will be forced if the templates change
   * separation of the template engine from core, making Freemarker optional
   * added an alternative, optional, Groovy template engine
   * template engines have access to the database, which means they can optimize memory usage (depending on the underlying engine, more difficult to do with Freemarker)
   * "index", "archive", "feed" are now considered as document types, meaning you can use them as you would use "page" or "post"
   * tags are still rendered with special handling
   * support for custom document types. The list of document types is extracted from the configuration file (template.[doctype].file

Comments welcome!