Yeah, common/lib/xmodule isn't supposed to depend on django, though there are a couple of classes that are doing this already (video module and contentstore).

And having the reverse calls in common also seems odd since it depends on a particular urls.py (LMS).

Sorry I didn't notice these dependencies before when I reviewed the code. I think more thought needs to be given to what part of the tabs are specific to LMS (links), and how we handle settings in common.