Global Inhibition (& Multi-inputs)

(Pretty picture in #56)

There's a new Edge build function in the builder which notices `Ensemble -> Neurons` connections.  As we only allow connections of this form if they're global inhibition connections (i.e., `transform=[[k]]*n`) it attempts to create a new global inhibition edge.

When filters are put together for vertices any `GlobalInhibitionConnection`s are ignored.

There are some _sneaky_ (or not) changes to the C... before we had all the input stuff deal with a global input buffer `g_input`, now we require a pointer to that input buffer to be passed to the function so that we can reuse the same code for filtering inhibitory inputs, or learning.

I'm proposing we merge this now and include it in some clean up work later... it's not _too_ bad on the Python side other than exposing the slight clunkiness of the (admittedly neater) filtering code. (The C, ofcourse, is a paragon of good coding ;)