defprotocol doesn't resolve tag classnames, this results in exceptions being thrown when the declared protocol uses as a tag an imported class that is not imported in the namespace that uses it.
Patch updates for current master, retains attribution.
-3 patch uses resolve instead of opening up the compiler, per Rich
resolve is not correct, it breaks special type hints like `longs`:
Seems like there should be tests to check these cases
-4 uses compiler functions that are already public and used in defn, and adds regression test for longs hinting