Add control over whether to update template index

 * if activator.checkForTemplateUpdates=false then don't
 * allow creating a DefaultTemplateCache with autoUpdate=false
TemplateCacheSeedGenerator: require index file to exist, don't update it
TemplateCacheActor: improve the error reporting on missing cache
if hasNewIndex can't download anything, print a warning.

Also log a couple related errors at warning rather than info level.

Otherwise we didn't show an error on network f-ups because we
only did hasNewIndex and didn't get to resolveIndexTo
Overhaul template catalog updating and error handling

 * change TemplateCacheActor startup logic.
   - force-create the template cache directory
   - if we have the index hash but not the index,
     download the index for the hash we have
   - if we have the index but not the index hash,
     log it but proceed
   - greatly increase logging detail to tell what
     we did and why
 * rename hasNewIndex to hasNewIndexProperties
 * make resolveIndexTo take the current hash instead of
   re-downloading it, and not return the one it downloaded.
   This clarifies how things are supposed to work.
 * add ifNewIndexProperties which is called with new CacheProperties
   only if there are new cache properties
 * expose "location" field in CacheProperties so ifNewIndexProperties
   callers can get it
 * add resolveLatestIndexHash because I think the template server
   might need it
 * downloaded index MUST match the expected hash or we just discard it
 * fix up tests
Rearrange TemplateCacheActor init to try to show exactly one error

Previously we would both print out the real error, and then
fail to open the index (due to it not existing) and also
print the "no such directory" error. This would probably
confuse users and make our bug reports less useful.
Merge pull request #34 from typesafehub/wip/havocp-new-templates-check

Overhaul how we check for updated template catalog