Add test stub source files
Import base 62 hashes logic

This code originally licenced GPLv2. Relicenced BSD3
by the copyright holder on 2 Jan 2014.
Clean up warnings
Hashes for object names

Take hashes of origin name and source dict and represent them in base
62, limited to a fixed number of digits.
Add epoch constant to bucket label
Uppercase hexidecimal alphanumerics
Tidy origin name and use in bucket labels
Set hash width to 27

62^27 > 2^160, which is the width of a SHA1.
Fork base62 Hashes code to locator16 Locators
Switch object bucket label to use locator16
Sort digits in locator16
Add coverage for not repeating locator16a

Refactor to use proper data type for Locator.

Change hash string functions to be in terms of locator16a, not
locator16. This means it's not a no-collision hash function anymore.
Probably should rename it.

toLocator16a is not reversable. There is no fromLocator16a.
Refine digit choices in Locator16a

Eliminate 'Z' (Americans can't pronounce it) and 'U' (Australians say
"double U" for 'U''U' which collides with 'W'). Replace with '2' and
'L'.
Use locators package

Hashes and Locators, which was external code copy and pasted in
anyway, are now in their own library. Depend on that instead.
Remove locator tests
Document source dict portion of bucket label
Merge branch 'bucket-names'
Better Show instance for Core.Point
New home for ContentsObject code

Move constants from ObjectFormat to Constants.

Rename ObjectFormat to BucketObject.

Create ContentsObject.

Add preliminary Contents data type to CoreTypes