images/fastjpeg: use jpeg.Decode when djpeg fails.

Return error of type ErrDjpegFailed when djpeg or parsing the PNM returned
fails.
Attempt to decode image again with standard library.

Change-Id: I2a0cb7b52885732b7cbbffb8e34993d232781bc0
Make Google oauth2 support work again.

Change-Id: I7f5f3c714c7385685c283fec5362db5ca1c31f81
index: actually reindex when out of order

problem: the out-of-order mechanism based on the outOfOrderIndexerLoop
was not working for some claims.

Let C be a delete claim on permanode P. If C was received before P was,
C was marked as being received with the "have" index row. However, for
the deletion to be marked in the index, some information about P is
needed (its meta row), so C could not be fully indexed upon reception.
Then, when P was finally received, the outOfOrderIndexerLoop would kick
in and retry indexing C. Which would fail, because a test based on the
"have" row would (wrongly) detect that C is already indexed and return
early.

In this patch:

-we introduce the "|indexed" suffix to the "have" - value part - row
(receive.go). If a blob is received but some of its dependencies are
missing, the have row value is written without the suffix. Upon
reception of a blob, we now test for the presence of the suffix in the
have row. If missing, the reception continues instead of returning
early. The existing mechanism that was detecting missing dependencies
for file blobs has been adapted to work with this suffix too.

-the index enumeration (enumstat.go), which relies on "have" rows, has
been adapted to work with the new "have" row format, while staying
compatible with the old format. And related tests have been added.

http://camlistore.org/issue/454

Change-Id: I2559d08a12b2a4e0f0691fc7e31f1ed1f874625e
Merge "images/fastjpeg: use jpeg.Decode when djpeg fails."
Change strutil.StringFromBytes to depend on Go 1.3.

Change-Id: I83fd1369a199dba7ef41227df4d0b95d9a16aabb
Merge "index: actually reindex when out of order"
Add code.google.com/p/google-api-go-client/compute/v1 to third_party.

For creating GCE instances running Camlistore.

Change-Id: I8633053e41f47c055bf40d99a4322be0d0730379
Merge branch 'master' of https://camlistore.googlesource.com/camlistore
Start of tool to create Camlistore instances on GCE.

Will be wrapped in a webserver later.

Change-Id: I95738e57e3e3db11436af777cbf21e680dd10d66
Create a cache of search sessions to improve performance for common navigations.

This was done in a more manual way in the old UI. This is a bit more general.

Change-Id: I2a0f14a7023edc17c4853a2bc1fa5c7987f71de9
Merge "Create a cache of search sessions to improve performance for common navigations."
images/fastjpeg: reset checkAvailability in tests.

Reseting checkAvailability each run uncovered the fact that
CAMLI_DISABLE_DEBUG wasn't being properly reset, which affected later
tests.

Change-Id: I19b790ef8182b1bc2d54cbf33fa9dfe84dbe3903
Merge "images/fastjpeg: reset checkAvailability in tests."
docker: version bump Go 1.2 -> 1.3.1

We now require 1.3, update the docker build to match.

Change-Id: Iaa9b864d5940509c888db45ae17b6dbd21d1ddb7
make: copy all files found in testdata/

This saves people from needing to updating rxMirrored every time they add a
new type of file to their tests.

Change-Id: I32f87dbe92ae844e411ce77d0abe67c37a668ff3
GCE setup tool: more graceful OAuth setup

Change-Id: I28893735c49da18d3890a0df07b071048c29ba68
Create GCE instance, but without Camlistore running.

Change-Id: I3775ad8dc90562f9d4cb6c59da9a4df63aa417e8
Embed Mozilla's Root CA set for use in Docker environments without CA files.

Thanks to Adam Langley and Kelsey Hightower for pointers:

https://github.com/kelseyhightower/contributors/blob/master/certs.go
https://medium.com/@kelseyhightower/optimizing-docker-images-for-static-binaries-b5696e26eb07
https://github.com/agl/extract-nss-root-certs

Change-Id: I440cedf476446da852c409958a877fbcdb464340
httputil: simplify the SystemCARootsAvailable function

Change-Id: I88d36cdc2384634a6baa49b0d663d87a5d7fcb52
server: ignore errors looking up optional username.

Change-Id: I457f604c60726beaf9d263c07fb0283035696fd2