Removed some unnecessary parts of objects

Specifically:

- Connection.eval_points (now bare attribute)
- Ensemble.neurons (now bare attribute)
- Neurons.default_encoders
- Node.size_in, Node.size_out (now bare attributes)
- Node.__deepcopy__
- PythonFunction.__deepcopy__
- Probe.dimensions
Probes no longer modified in build

- eval_points stored separately (like bias, gain)
- build_probe doesn't store things on the probe
Builder refactoring

- Added BuiltModel and NeuronsBuildState objects,
  which contain the artifacts of the build process
- Refactored Builder class to construct these objects
  and made other simplifications
- Organized the test cases a bit better, and ensured
  that previously skipped tests run properly