return errors instead of panicing
String output, err, and doc updates. Other tweaks.

* renamed TypeCategory to Format and made format calculated upon decoding
  rather than repeatedly for every format call

* unexport BadTypecastErr -> wrongFmtErr

* Change String method to just return the string value - and don't have
  square brackets if only a single value

* add separate Int and Int64 retrieval methods

* update docs
fix mknote StringVal call
Improve time zone and Geo coordinate parsing

This is a merge with
camlistore.org/third_party/github.com/rwcarlsen/goexif

Squash of the following commits:

- exif: make DateTime return time.Local location when unknown timezone
  (https://camlistore.googlesource.com/camlistore/+/a82738064436e5010268616655650ac71855668f)
- exif: add Exif.LatLong accessor
  https://camlistore.googlesource.com/camlistore/+/b6d3d1a1037260b753b914e0c07279811cc76777
- Prevent panic crash due to malformed EXIF geotags
  (https://camlistore-review.googlesource.com/#/c/3637/5)
Added test image for GPS coordinates encoded as string
Merge branch 'nopanic' into camlistoreBackport

Required some changes wrt. to new API in exif.go
Sync regression test cases with tiff.Tag.String()

Regression test case regeneration would lead to failing tests, as
produced string no longer matched expected string.
Merge branch 'nopanic' into camlistoreBackport

Conflicts:
	exif/regress_expected_test.go
removed explicit panics in favor of error returns.
Add default funcs for geo-coordinate and date/time taken retrieval
make example compile
Added mknote.RegisterParsers
Added a comment
fixed parser-registering order bug and simplified. Expanded example more and made example_test.go file consistent with new readme example
Add makernote parsing to example. Improved example generally.
update regression test generation to use go generate