Rework history_contents API to allow room for multiple 'type's of history contents.

Only poorly named 'file' (default) is currently implemented, will use new flexibility to add 'collection' type. Room made in create, show, and index methods.
Dataset Collctions - model layer.

Mapping, model definition, database migration, and model unit tests to support database collections.
WIP: Dataset collection infrastructure glue - API and service layer.
casperjs: Fix user login, registration, logout for recent masthead changes...

They are generated in javascript instead of HTML now so I don't think they are available when page loads. My fix is to wait for the User menu to appear before attempting these operations.
casperjs: Centralize logic for test user login.
casperjs: Helper method for creating API datasets.
WIP: API functional tests for dataset collections.