Upload csv files with entities and profiles.

For entities, if the project_id and property_code match, then the entity
will be updated. If they do not match, then a new entity will be created
in that project.

For profiles, if the property_code, event_type and timestamp match, or
the entity_id, event_type and timestamp match, then the profile will be
updated. Otherwise a new profile for that entity will be created.

If a profile has an entity_id and a profile_id pair that cannot be
matched then a 404 will be returned.

Some bug fixes as well for schemas and entity editing.