Logging and unit test improvements (fixes #37)

I looked up how logging should be done for libraries and stuck to those practices. Basically, each file gets a logger according to its `__name__` and logs messages to it; leave it to the applications using Nengo to edit the global state and add handlers and such.

Of course, for us that's not great, so there's also `nengo.log()` and `nengo.log_to_file(...)` in case we want to change global logging state.

I converted most instances of print statements to logging statements. In the future, best to stick to `logger.debug` instead of print statements, as then when you've figured out what's wrong you can just leave those debug messages in the code.

I also made better use of the standard library's `unittest` module to get rid of the `nose` dependency. The only benefit with `nose`, really, is not having to make `TestCase` subclasses, but for testing multiple simulators that's convenient anyway.