Synapses

I think we should merge this now into master. It basically has all the features we discussed (except for the `S.count` syntax and some particular indexing features), it is lacking more thorough testing, though. The problem is that this branch now diverged quite far from master, so developing any kind of feature based on master always entails an annoying amount of merge conflicts. I'd also say that the head of the synapses branch is what we currently want users to test and therefore it should be master.

If you are ok with this, I'll go ahead and merge it -- it cannot be automatically merged, I think.