Context menu

@haosharon  I am running into problems with circular dependencies, Joe said you were dealing with something similar?

For me, the ContextMenu plugin needs to access the DataProvider instance (which would mean the dataprovider would need to be listed first in main.coffee), but DataProvider calls a ContextMenu function as well.