Implemented new Model.definition class decorator for Model classes

Addresses the important issue with the decorator system whereby the
methods could be called across any defined class regardless of the
appropriate method resolution order. This issues is described in more
detail in ioam/topographica#591
Integrated matchconditions with the new class decorator system

Methods decorated by @Model.matchconditions are now correctly processed
according to the correct method resolution order using the
Model.definition decorator.
Removed unnecessary attribute override in load_snapshot
Added CoG Contour style
Updated external submodule references
Resized plots in GCAL_Collector Tutorial
Fixed double ellipses DeprecationWarning in HomeostaticResponse
Updated reference_data submodule reference
The specification is now an attribute of the model object (post setup)

The model object now has a specification attribute that is set by
calling the setup method. In addition, setting the topo.sim.model
property now calls the setup method automatically.
Added check for parameterized objects and classes to Specification
Added ArraySpec to finish deprecating the use of topo.analysis.SimRef
Fixed spacing between methods
Introduced ArraySpec imports for easy access to ArraySpec
Updated Collector tutorial to reflect deprecation of SimRef
Silenced Pyflakes errors regarding unused imports
Updated dataviews submodule reference
Removed outdated references to topo.pattern in favour of imagen
Updated numpy imports in transferfn/misc
Initial commit of the TemporalScatter transfer function
Fixed inappropriate default distribution for TemporalScatter