Unabstract code
Refactor targets into a series of classes.

Using inheritence here to avoid the big pile of if type is this/that
hassle.  The main types all have a different target_ type (e.g.
target_object, target_file, target_plot, etc) which simplifies the code
and removes a great many conditional branches.  The classes still seem
too large though.