Weight initialization with time-dependent=True

Initialization of different random weights from a single imagen.pattern
instance where time_dependent=True. Without this fix, all CFs would be
initialized with identical weights. This approach allows independent
weight generation, making parallelism possible (via multiprocessing).
Added convenience function time_dependent to topo/__init__.py
Updated som_retinotopy.ty to use the topo.time_dependent helper function
Weight generation falls back to uncontrolled style when necessary
Modified som_retinotopy.ty so that it passes existing training tests

These changes should be reverted and an appropriate name given to the
UniformRandom Imagen pattern to make som retinotopy time-dependent
throughout. This will require updating the training test data.
Added CFProjection.hash_format parameter to control CF weights
Renamed controlled_weight_generation to independent_weight_generation
Added the destination sheet name to the hash_format string
Merge pull request #567 from jlstevens/master

Controlled (i.e independent) weight initialization