Remove Constant class and make Signals have initial values

For learning, it makes sense to start off with some decent decoders and then refine them over time. This means that Signals have to be able to have initial values -- fortunately, this was already (mostly) possible because that's how Constants were implemented. But, aside from that Constants didn't do much as the simulator just used the Operator information to tell if the Signal was being written to or not.

So, I basically made every Signal have a value (like constants did) and removed the Constant class. Also made a few random changes, which you can see in the commit messages.

I'll make a corresponding PR for `nengo_ocl` as well; no changes had to be made to `simulator.py` so hopefully the same will be true for OpenCL...