New name system

To get this out of the way, I implemented the changes to the naming system we discussed in #47 . Classes no longer have a `basename` attribute, instead they simply define e.g. `neurongroup*` as the default value for the `name` keyword argument. Internal objects that don't take a name argument might construct a name themselves, e.g. the `Tresholder` object calls the `BrianObject` initializer with `name=group.name+'_'+'thresholder*'`.