Changed Connections to use "synapse" instead of "filter"

See Issue #283
Changed Probe to use "synapse" instead of "filter"
Product network for multiplying vectors
Basal Ganglia use nnls_L2nz and output filter
Updated CircularConvolution to use Product

Also better kwarg error handling
Fixed some tests
Fix for test in Python3 take two
Removed leftover plot=True
Updated EnsembleArray to use slice syntax
Changed passthrough optimization to use transform_full
Added nengo.utils.testing.Timer

This is for quick time profiling of blocks of code.
We use this in a few places in unit tests.
Added tests for utils.decorators.memoize

Currently these are commented out right now due to limitations
of utils.decorators.memoize.
Improved memoize decorator

Used the existing decorator decorator to make memoize
work in more situations than before. Has the added
benefit also that introspection on memoized functions
will work as expected.
The previously commented out tests now pass.
Update utils.decorators docstring
CircularConvolution uses Product as intended

That is, we're no longer bypassing product.A and product.B.
This involved some rearranging of CircularConvolution
to attempt to make it more understandable.