Issue 37: UI to upload tiles without deploying

Fixes #37:

This PR includes backend and front-end code that makes Tiles deployment safer, and adds another feature: the ability to add tiles to the Data Warehouse without deploying.

It is a stepping stone towards the incoming scheduling feature of tiles deployment.

The UI features include an additional step to deploy tiles: a checkbox needs to be checked before the data is deployed to Firefox users.

Fixes #40:  (This should've been a separate PR... sorry)

Another feature in this PR is the concept of Channels.
This allows for the deployment of Tiles to channels other than Desktop, e.g. Android.
Does angular give you the object `choice` or the displayed text `choice.created_at` when you read out $scope.versionSelect? I see the `$scope.$watch('versionSelect', function(newValue, oldValue)` code treat newValue as an object.