Make environment directory
Moved the main config into cohesion-default-conf

So that the application config doesn't get mixed in with the cohesion config
Updates to the main structural classes

* Controller constructor takes a config, input and authentication parameters
* Handler constructor takes application config and the current user
* Handler uses a DataAccessFactory to create the DAO for the handler
* DAO uses type hints for constructor parameters so that the DataAccessFactory knows what resources it needs
* DTO includes validation functions
Group data access utilities within a subfolder
Update the MySQL database library to take in a Config object

Also added a new function 'query' which will decide if it should query master or slave based on the assumed query type.
Use the environment to get the format of the expected output

Also added some environment values in the global config
Add comments to the config file
Create database interface
Move templating from structure dir to utils dir
Update templating engine

Use the TemplateEngine interface
Constructor takes a Config object
Added site url and cdn url tags
Make the View abstract and extend it into a new TemplateView

Add DataView
Fix type bug in environment getFormat
Fix MySQL set charset bug
Update routing rules

It will look for the first path segment that is a valid Controller then
check if the following path segment is a function of that Controller, if
it is then it will call that function with all the following path
segments as parameters to that function, if it's not a valid function
then all segments after the controller will be considered parameters to
the Controller's index function.

Given the path /nothing/something/action/param1/param2?foo=bar
"nothing" is not a controller and will be ignored.
"something" matches the controller SomethingController (based on the
class prefix and suffix) and therefore that controller will be used.
"action" is a function of SomethingController therefore the resulting
call based on a request to that URI will be:
`SomethingController->action('param1', 'param2')`
To access the GET and POST parameters you can to use
$this->input->get('foo');

For the home page (route '/') the default controller will be used with
the default function.
Add Factories for generating Routes and Views
Add template engine interface
Update index.php to output errors in the right format