Can now delete params from a config object.
Rewrite associative memory tests

These are similar to the prior tests, but much clean up.
A few significant changes:

- Run simulations for as little time as possible
- Better testing for similarity between probe data and pointers
  (see `similarity`; this could be made more sophisticated and
  moved to `nengo.utils.testing` when fixing #512)
- Added plotting to all tests that simulate
- Simplified winner-take-all test (previously was same as complex test)
Config defaults are now validated

This caused several test cases to fail, which are also fixed.
Usually, this occurred when a network default was set to something
that relied on a parameter that wasn't set; for example,
it is now an error to set a network's default encoders to be a
NumPy array, because the `n_neurons` of each ensemble is not known.
In these cases, changing the value to a distribution instead fixed
it, and is a better thing to do anyhow.

There was also a case in the SPA associative memory that the
Uniform distribution was being sampled and passed in. The sampled
value wasn't used anywhere else, so I just passed in the distribution
instead. This also solves a subtle bug that those distribution
samplings weren't seeded; passing in the distribution ensures that
they will be seeded.
Skip test_examples if IPython>=1.0 not available

Previously this would just fail. Now, we skip example testing if
IPython is not installed, or a version < 1.0 is installed.

Note that the additional monkey patching of
`_pytest.capture.DontReadFromInput` is due to a bug in how pytest
and IPython 0.12.1 interact. They both change sys.stdin, in
incompatible ways. Adding these two functions allows them to coexist
long enough for us to detect that an old version of IPython is
installed so we can skip the tests successfully.
Scale spikes by `dt`

- Fixes #510.
- PES is now invariant to choice of `dt`.
- BCM and Oja are theoretically invariant to choice of `dt`,
  but in practice the output varies somewhat since these rules are
  so sensitive to the individual neuron activities. The difference
  is thus less pronounced for rate neurons.
Better error message for unprobable LearningRules

The BCM and Oja rules currently have no probeable parameters. Trying
to probe something on them gave a very unhelpful error message
that made it sound like no LearningRules are probeable. Fixed this.
Exposed some internals of BCM and Oja for probes
Can now probe transform and decoders

All this required was adding these to Connection's "probeable" list.

Changed some of the learning tests to use these probes to
ensure that some kind of weight changes are happening.
The unsupervised learning test, for example, now asserts something.
Use decoder and transform probes in examples

Specifically, learn_communication_channel and learn_unsupervised.
In order to not crash computers, we sample these at a lower rate
than most probes.
WIP: filter dec / trans probes