Separate parsing request args from query building

This allows the query related stuff to be moved closer to the data store
and the request parsing stuff to be moved closer to validation.
Move querying into storage
Update licensing fixture to add more events

So that the fixture can reflect weekly grouped data.
Validate start_at and end_at in query for period
Add negative test cases for query validation
Positive test case for period validation
Remove redundant build_query method

It's now handled in the storage module
Add Record model
Seperate unit and integration tests for storage
Refactor for clarity around _week_start_at
Tidy code for pep8
Use parser to create model objects
Feature test for tagging data with _week_start_at
Parse request arguments more cleanly
Test api queries result in correct storage queries
Add period query - doesn't do anything yet
Integration tests for exisitng queries to db

@maxfliri
@gtrogers
First part of week grouping
Add grouping for week periods

@maxfliri
@gtrogers
Pull out repository class

@maxfliri
@gtrogers