Simplify

* remove intermediate Setup object
* allow detectors to be placed inline with the setup (useful for
  recording ray positions at intermediate planes)
Place all abstract classes at the top of the file