Introduce new submodels machinery
Changed SheetRef to SheetSpec
Changed ProjectionRef to ProjectionSpec
Created superclass Specification
Make SheetSpec and ProjectionSpec callable
Cleaned up __str__ of SheetSpec
Various smaller renames
Changed setup() and init() to accept setup_options as a list
Changed call() to accept initialise_options as a list
Use self.message() instead of print()
Use dict specification to set parameters/matchconditions
Use new __init__ method
Use helper function specified in topo/misc/commandline.py
Spelling mistake
Replaced mappings by decorators
Various smaller changes
Fixed formatting throughout __init__.py
Simplified ordering of properties for naming purposes
Eliminated use of del in ProjectionSpec
Fixed syntax error
Minor formatting fixes
Fixed name ordering when ordering key not in properties
Renamed projection_spec decorator to connect
Removed underscores from methods to be implemented by modelers
Updated internal method names of Model
Added level property to SheetSpec
The setup_sheets method now needs to return a list SheetSpecs
Removed __init__ methods in favour of a well defined initialize method
Implemented new system for motion lags and multi-projections

A method using the level decorator can now return a single dictionary of
parameters or a list of dictionaries. In the latter case, each parameter
set becomes a separate projection.
Use one (unnamed) eye rather than zero eyes in self.eyes in case of single retina simulations
Merge pull request #571 from Tobias-Fischer/pr_submodels

New topo.submodels directory for modularly building complex models.