Build utils and utils organization / Test organization discussion

I rebased the `build_utils` branch to current master, and cleaned up a little bit of the history so every commit passes tests. Then I tried out @tcstewar's suggestion of a `util` package, allowing up to be more liberal with making a bunch of files in there that have more descriptive names. I think I like that organization quite a bit; anyone have any other options?

Then, the only other thing to mention is how we should organize the `test` directory. I think there are 3 options:

1. Put them all in `nengo/tests` (e.g., `nengo/tests/test_network_basalganglia.py`)
2. Organize `nengo/tests` like `nengo` (e.g., `nengo/tests/networks/test_basalganglia.py`)
3. Put a test directory in every directory in `nengo` (e.g., `nengo/networks/tests/test_basalganglia.py`)

I think that I like 2 the best. Any other votes or other options?