Added requirements file for pip.
Some fixes for building docs on RTD.
Added support for subnetworks via a simple proxy object
Initial draft of network array implementation

- array test is the only one i've tested
- it runs but there are clear problems with the code
- increasing the number of neurons decreases the decoded signal amplitude
- I believe there are two problems, one in the J calculation in
  ensemble.update, and then in ensemble_origin.compute_decoders
Fixed dimensions of decoders

- was previously array_size x neurons_num x ensemble.dimensions,
  instead of array_size x neurons_num x func.dimensions
- also removed a couple of old comments from several files
Fixed encoder specification for network arrays

- also added some more print statements for debugging
Ensemble_origin update rewrite

- Pythonfoo style rewrite
Ensemble.update rewrite

- python foo'd
Network array working

- the encoders were being summed over the wrong dimension
Fixed decoded_output update for array_size = dimensions = 1

- added 'TT.flatten' call to make sure decoded_update always
  updates as a vector
- removed some of the print statements throughout the code
Fixed noise generation

- J is now a list, using self.bias.shape instead
- removed more print statements
Intermediate commit

- still working on the decoded_weight_matrix_test fix
Removed print statements.

- all tests work but decoded_weight_matrix and learning_test
	- need to decide appropriate handling for decoded and arrays
Added fixed_seed parameter

Cherry-picked, as it was committed after n_array merge started.
Cleaning up a few typos to let tests run
Fixed bugs, tests run

- updates added to theano function in network.run
- removed some extra comments
Transform can specify basic pre=decoded, post=encoded connections
Transform for decoded-decoded handles for network arrays

- updated transform test to include check for this too
Transform handles (post.neurons_num * post.array_size, pre.dim) case
Transform for pre=decoded, post=encoded extended

- can now handle multiple shapes
    - (post.neurons_num, pre.dimensions)
    - (post.neurons_num * post.array_size, pre.dimensions)
    - (post.array_size, post.neurons_num, pre.dimensions)
- decoded test updated to test these cases