Reworked SimpleNode to use SimpleOrigins

- TODO: rework network to not handle Ensembles and SimpleNodes as
  separate cases
Sub/superclassed origins / ensemble origins

- Want standard interface for all network nodes that generate output
- Origins are now a superclass used by SimpleNodes, instead of
  having SimpleOrigins
- EnsembleOrigin is the old Origin
- TODO: Implement on Input, will do so presently
Input origins added, special cases code removed

- Added network.get_object, takes in string, return object
- Handles 'node:origin' syntax
- Ensembles, Inputs, and SimpleNodes all handled with same
  network.connect code
Updated simplenode_test for node:origin syntax
Fixed bug in the origins
Added hPESTermination class to enable learning.

- learning now works for the basic example in learning_test.py
- learning has not yet been tested for network arrays
Redid Travis' changes (poor merge on my part)
Changed over several tests to use probes
Fixed some more tests to use probes
All tests and simplenode origin work

- Fixed the way simplenode generates origins to pass in initial value
- Fixed tests to work with probes
Fixed probe resizing (issue #12)
Transform can define connection type

- removed 'decoded_weight_matrix' parameter from connect
- now transform shape specifies weather its
    - encoded connection
    - decoded to encoded connect (i.e. for inhibitory connections)
    - encoded to encoded (i.e. full connection weight matrix specified)
- updated tests appropriately
Network make functions now return created object.

- I also added some documentation to network.add(node)
Added .gitignore.
Prepping to use Sphinx for documentation.
Moved to nef directory for packaging.
Moved tests to their own subdirectory.
Renamed tests to test_<testname>.py.
Lots of cleanup.

Most of it is such that the code still looks nice
when limited to an 80-character terminal.
I also used relative imports, which makes sense
with the reorganized repository.

Note that because of the relative imports,
tests have to run in "module" mode.
This can be done, for example, by
`cd`ing to the `nef` folder and executing

    python -m nef.test.test_array

to run the test_array.py file. Note the lack of .py
in the above command.
Added some informative documents and `setup.py`.

With `setup.py`, you can now install nef-py to a site-packages
directory using the command

    python setup.py install

To do this locally (which is likely preferable at the moment) do

    python setup.py install --user

Then, you can run scripts using nef-py by just importing
nef or nef.nef_theano as nef, and off you go.

This also means that we can upload to PyPI, but let's hold
off on that for a while.