Split code generation into components.

Parsing the specification has become its own class.

Templating has been abstracted, now beautifying is built into all php
generation.  We lose the singleton efficiency, it gained us a few seconds
at most.

Generation tasks are split into ITasks, and are fed the main CG object
as if it were a configuration object.  Eventually we will want to make
the configuration a first-class object so that it is customizable.

----------------------------------------
* CRM-13871: Provide an ORM layer: Doctrine
  http://issues.civicrm.org/jira/browse/CRM-13871
Basic Doctrine annotations in DAO codegen

The "cardinality" attribute should be added to all foreign keys in
the schema.