Major change - Columns order and SQL automation

* Join :
    - Auto-generating SQL CREATE query if no build qery specified,
    - Possibility to force the type of some columns types
    - Possibility to force the order of the columns (or of the N first columns)
    - 'join_on' takes the name of the column instead of its index

* Fact :
   - Auto-generating SQL CREATE query if .sql file doesn't exist (automatically creating types, foreign keys and unique keys),
   - Possibility to force the type of some columns types
   - 'group_by' and 'join_on' now take column names instead of column indexes
   - Possibility to add custom aggregate functions in each fact
   - 'dim_fields' and 'dim_names' contain only the dimensions (no 'None' anymore)
   - Back-end : changed the way 'group_by' works - grouping with dictionaries now.

* Both :
   - Improved error handling

NB: When this new version will be released, we will need to update the facts in the Analytics repo.

See 'fact/fact_host_relations.py' in https://github.com/lifealike/analytics/pull/17 for an example