Rename runtime_targets to codegen_targets and move it out of the runtime package
Change the FunctionImplementation a bit: only allow class objects as keys (the only user-facing code, the make_function decorator, provides a translation from strings to class objects)
Implement a "discard_units" mechanism for numpy functions to not do unit-checking during a run