Rename thalamus.thalamus to .actions

Some of @tcstewar's SPA examples probe thalamus.actions,
which seems like a nicer name for this EnsembleArray anyway.
Fixed small bug in input gated memory

- Synchronized synapse value for connection from diff->mem,
  and from mem->mem.
Added probing helper function and unit tests
Can pass probe args to probe_all

Youssef says it's perfect now.
Can probe input to ensembles now

- also added self to contributors list
Stored BasalGanglia ensemble arrays in object
SPA Buffer bug fixes

- Modified subdimension parameter of buffer to be at most the specified
number of dimensions. I.e. default value of
subdim = max(dim, given_subdim)
- Addresses issue #417 (having a buffer defined with a different
dimensionality as the given vocabulary doesn't raise an informative
error -- now it does)
- Modified buffer tests to reflect new changes.
- test_memory now throws exception when using a vocabulary
that doesn't match memory dimension.
Added network properties for getting objects

These properties recurse into subnetworks to really get all objects.
Added neuron input/output to EnsembleArray

- the seed taken by the new EnsembleArray test broke
  some fragile SPA tests; relaxed those tests
Added check for invalid firing rates

- rates above the inverse refractory period are invalid
Added tuning curve plotting function
Added EnsembleArray flag to enable neuron nodes

Fix for issue #434
SPA Associative memory bug fixes

- Added ability to use associative memory as spa module (i.e. can be
referenced in BG action rules)
- Added test for SPA module interactions
- Added AssociativeMemory class to __init__.py
- Alphabetized __init__.py
Bug fixes for SPA thalamus code

- Fixed inhibition weight error in thalamus code.
- Made thalamus code get gate ensemble array subdimension information
from the target module (rather than just defaulting to 16 always)
- Added test for gated routing scenario
- Updated test_thalamus to new SPA syntax
- Added routing-inhibition parameter to constructor
- Added thalamus output test to test_routing test.
SPA.input bugfix related to predefined vocabs.

If multiple inputs were specified with a single spa.Input call with spa
modules that each had different, predefined vocabs, they would both end
up using the same vocab.

Includes a unit test for the fix.
Warn on setting missing attribute

- fixes issue #217
Fixed bug in `full_transform`

Was not getting the correct input and output sizes
Added validation and more defaults to Parameter

Parameter and Default now live in params.py.

The ability to do validation is now built into params.Parameter.
Parameters can be set as optional (None is not a valid value)
or readonly (can only be set once per instance).

Additionally, multiple "default" values can be set; this is
useful for the Nengo config stack, as each config object can set
a default for each Parameter.

Tests for Parameter are moved to test_params as well, as many more
subclasses are forthcoming.
Remove Parameters and label from learning rules

Done to make Neurons, Synapses, and LearningRules act similarly.
This may be revisited later.
Added Params for basic Python types

Specifically, added and tested BoolParam, NumberParam, IntParam,
StringParam, ListParam, and DictParam.
These give us some additional validation for Nengo object attributes
that we know should be of a particular type, and possibly
within a particular range (in the case of numbers).

Co-authored-by: Eric Hunsberger <erichuns@gmail.com>