wip
bakery: add caveat id to third party checker function
More test coverage, esp for error handling cases.

Refactor out patching bad random, more err coverage.

Updated per Rog feedback.
Merge pull request #17 from cmars/more_test_coverage

macaroon: more code path test coverage
Merge pull request #18 from rogpeppe/020-bakery-provide-caveatid-to-checker

bakery: add caveat id to third party checker function
Merge remote-tracking branch 'origin/master' into 019-better-example

Conflicts:
	httpbakery/discharge.go
httpbakery: error handling, redirection, explicit discharge

We use a common pattern for error responses
and make use of the errgo and httpjson packages.

We make the Do method aware of the possibility
that the user might be directed to visit a web page
to complete authentication.

We add a Service.Discharger method to allow the
creation of discharge macaroons without necessarily
entering through the discharge HTTP handler.
Merge pull request #19 from rogpeppe/021-httpbakery-updates

httpbakery: error handling, redirection, explicit discharge
Merge remote-tracking branch 'origin/master' into 019-better-example

Conflicts:
	httpbakery/client.go
	httpbakery/discharge.go
	httpbakery/handler.go
everything compiles again
bakery/example/idservice: simple test with interaction now works