Builder refactor

This is a significant refactoring of the builder code, which has gotten too big for a single `builder.py` file. It's now a subdirectory, `nengo/builder`, with build functions relating to Nengo objects contained in their own files (e.g., `nengo/builders/connection.py`). Unlike the hierarchical builder PR (#453), this is just refactoring; the build functions were not changed except for being moved, and the following two changes:

1) I kept the decorator approach, so what used to be
```python
def build_fn(...):
    ...
Builder.register_builder(build_fn, nengo_class)
```
is now
```python
@Builder.register(nengo_class)
def build_fn(...):
    ...
```

2) I changed the build calls from
```python
Builder.build(model, obj, args)
```
to
```python
model.build(obj, args)
```

Since this is a big move, it'd be good to get this merged before any more changes happen to builder code; rebasing this branch after builder changes is error-prone (rebasing builder changes once this is merged is slightly less error-prone).