feat(store): add deis-store component

This is the deis-store component described in https://github.com/deis/deis/issues/1384.
It uses Ceph as a backing service, and features a blob store gateway that is
both Swift-compatible and S3-compatible.

Note that to test this, you will need Docker 1.2.0 and fleet 0.8.0+.

TESTING: build, install, and start the stores and the routers
```console
$ make -C store build
$ make -C router build
$ make install-routers install-stores start-routers start-stores
```

If you make changes and want to restart stores:
```console
$ make -C store stop build
$ make start-stores
```

After this, your cluster should look like the following:
```console
$ fleetctl --strict-host-key-checking=false list-units --fields unit,load,active,sub,machine
UNIT				LOAD	ACTIVE	SUB	MACHINE
deis-router@1.service		loaded	active	running	442acc93.../172.17.8.102
deis-store-daemon@1.service	loaded	active	running	a852dd23.../172.17.8.100
deis-store-daemon@2.service	loaded	active	running	a3b47562.../172.17.8.101
deis-store-daemon@3.service	loaded	active	running	442acc93.../172.17.8.102
deis-store-data@1.service	loaded	active	exited	a852dd23.../172.17.8.100
deis-store-data@2.service	loaded	active	exited	a3b47562.../172.17.8.101
deis-store-data@3.service	loaded	active	exited	442acc93.../172.17.8.102
deis-store-gateway.service	loaded	active	running	a3b47562.../172.17.8.101
deis-store-monitor@1.service	loaded	active	running	a852dd23.../172.17.8.100
deis-store-monitor@2.service	loaded	active	running	a3b47562.../172.17.8.101
deis-store-monitor@3.service	loaded	active	running	442acc93.../172.17.8.102
```

Once the services are running, you can enter one of the `deis-store-monitor` or `deis-store-daemon`
services and `ceph -s` to see the cluster health. To access the object store endpoint,
hit `http://store.local3.deisapp.com`. Your object store requests go through the router!

fix(store): try and try again until OSD creation succeeds

chore(store/systemd): remove unit files in favor of deisctl

chore(store): refactor for new dev environment; bump to Ubuntu 14.04

fix(store): check OSD_ID type rather than return value

fix(store/Makefile): fix start/stop, etc.

fix(Makefile): add store to main Makefile

fix(store): strip newlines from secret key / access key

ref(store): use EXTERNAL_PORT like the other components

feat(store): add functional tests

fix(store): use multiple Docker CLI handles in tests

This is necessary because the PrintToStdout function closes the
pipes after it matches output.

fix(store): finish tests, skipping if we're on boot2docker

ref(store): change min_size from 1 to 2

ref(store): no longer use a data volume

ref(store): clean up Dockerfiles

fix(store): add dev-release and release targets to Makefile

fix(store): add deploy target for hacking

fix(store): invert docker start pattern, dont remove database

ref(store): template ceph.conf

ref(store): change min_size back to 1

fix(store): sleep before trying to create OSD

ref(store): expose all OSD ports

This has no effect since we use `--net host` on the store containers,
but it's good to document that OSDs actually use four ports.

feat(store): exit if OSD ID isn't valid

fix(store): passing component tests, go fmt

fix(store): correct log message

fix(store): mock ceph for database/registry tests

fix(store): remove /var/lib/ceph/osd from copy-on-write

fix(store): cleanup osd vfs on container removal

fix(store): use portable sed strategy

fix(store): change pg_num for default pools
feat(database): use deis-store and WAL-e to ship WAL logs

feat(database): perform backups periodically

feat(database): perform initial backup after db creation

fix(database): perform base backup after database is running

feat(database): make startup more verbose

fix(database): correctly determine if database is initialized

fix(database): properly escape recovery.conf

fix(database): don't start backing up if a restore is in progress

ref(database): template deis-store-gateway endpoint and port

fix(database): database is already created on package installation

ref(database): no longer use custom confd

fix(database): fix functional test check for output

ref(database): remove volume and checkout specific wal-e SHA

fix(database): fix perms to match new trusty images

fix(database): dont remove container on start-pre

fix(database): report running after initial backup
chore(*): remove deis-database-data and deis-registry-data
feat(registry): use store component for filesystem layers

fix(registry): fix S3 calling format

chore(registry): remove repositories data directory

fix(registry): bump log level back down to info

fix(registry): add boto_bucket option

chore(registry): bump commit sha to latest

fix(registry): bump to upstream, include repository-import functionality
feat(deisctl): add store support; drop database-data and registry-data

ref(deisctl): convert store to use global units
fix(*): add store dependencies to tests
fix(builder): remove vfs on tests
fix(tests): dont use git remote on deis pull test
fix(*): resolve store rebase issues
fix(store): remove pg_num reconfiguration
ref(router): rename gateway from store.domain to store.deis.domain
Merge pull request #1910 from carmstrong/deis-store

feat(store): add deis-store component