Define schemas to store nested data

Experimenting with a new git workflow, where you open the PR request for discussions completing the branch. 
This lets you comment and reference the PR in git issues etc.

This feature will let us create simple schemas similar to the ones being used in BigQuery https://developers.google.com/bigquery/docs/reference/v2/jobs#configuration.load.sourceFormat

```python
DB(
  schema=dict(
    fields=
      dict(
        name='fieldx',
        type='STRING'
        mode='REPEATED' 
      )
  )
```

This information is then used during DB building and querying for optimization and the return values for missing attributes. For example fields with a mode of REPEATED return and empty list where as normal fields return None