Spike Recording

__Depends on changes made in #32.__ [Hence the massive changelist!]

- Ensemble (C) code modified to record spikes as they occur.
  - Spikes stored in a local buffer which is written to SDRAM at the end of each tick/update loop.
- `EnsembleVertex` turns on or off recording based on value of `record_spikes`.  Region 15 is used for spike recording.
- `Builder` identifies when an Ensemble is being probed and sets the flag appropriately.
   - Instantiates an object which is passed to the `Simulator` and is responsible for returning the probed data in an appropriate format.
- When simulation is complete the `Simulator` calls on each probe to return data.  Data is stored in a dictionary under the simulator.
- Project depends on [bitarray](https://pypi.python.org/pypi/bitarray/0.8.0) for processing recorded spikes.

Example:
```python
# ... model built ...
sim.run(1.)

# Get data out
spikes = sim.data[probe]  # `spikes` is a list of lists of neuron numbers
                          # which fired in each timestep
```