website: add camlistore error handler

http://camlistore.org/issue/276

Change-Id: I786d8a858624caeb9258ae6b2a21056a4f79d246
Merge "website: add camlistore error handler"
Change URL format for individual blobs in the web UI.

Instead of /ui/?b=<hash>, /ui/?p=<hash>, /ui/?d=<hash>, etc...,
it's now just: /ui/<hash>

This makes constructing links easier, because you don't have to
know whether a blob is also a permanode, or a directory, or
whatever.

Change-Id: I771fa1b1699b9009269c7eee632e7e8fd5335331
Merge "Change URL format for individual blobs in the web UI."
Reimplement the Blob aspect using React.

Change-Id: I819b4d1dda86fe80db203f10e1e8a1b23b0777d5
Always show the search aspect for searches, even when results are empty.

Before we did not show the search aspect when the results were empty.
This was intended for the case where you're looking at an image or
something that doesn't have children.

But it had the side effect of meaning that we didn't show the search
aspect for empty sets, or empty search results, which isn't right
because you still want users to be able add items to empty sets.

Change-Id: Iad187b38317a5adcefbfd06f92047c03c5815583
If on GCE, use MySQL if MYSQLDB_PORT env var is set. (to linked Docker container)

Change-Id: I4fd4718e6912e7ad8127395cdf6972337a8766bc
gce: run mysql too. link it with camlistored.

I think I'm not using systemd correctly here. Things get very unhappy
if I reboot CoreOS: the Docker container named 'db' already exists, things keep
flapping up and down (not waiting for their dependencies), etc.

Maybe I need to register stop actions too.

Change-Id: I75ac3e965c03df4f7f3938ff13c66f137948bf4d
Merge branch 'master' of https://camlistore.googlesource.com/camlistore