Make get-package public (for internal use)

Also, the type signature has changed from Symbol -> String to Class ->
String to avoid calling resolve twice for the same import symbol in
group-by-package.
Add support for definterface and gen-class

Classes generated by definterface and gen-class don't have any reliable
metadata that can be used to differentiate them from regular classes.

Also, while defrecord and deftype implement clojure.lang.IType, nothing
dictates that these must be created from a Clojure namespace. This is in
contrast to definterface and gen-class, which have no utility outside of
of a namespace.

Therefore, we must fall back to naming conventions to infer
relationships.