Change internal structure of DataView to be 'facet'-based

This was required to implement #81 since there was no way to flag
individual columns in the structure that it was in. This is a more
robust structure composed of a list of dicts each of which with at least
one key 'concept' which is the primary key of the concept the facet
represents.

Each facet can now be disabled if an error occurs while being parsed.
Facets can have their 'visible' attribute set to False to denote this it
is only intended for sorting the data.

This is a backwards compatible change as it works with the previous legacy
input, however the output is in the new structure.

Read more http://avocado.harvest.io/wip/view-facet-validation.html

Resolves #82
Fix #81
Merge pull request #161 from cbmi/issue-81

Change internal structure of DataView to be 'facet'-based