don't swallow ImportError due to importing app that exists

Previously get_module() would try swallow the ImportError, but there are
two causes for the ImportError - the module file doesn't exists, or
importing the module file causes an ImportError.  We want to swallow the
first but not the second.

This commit uses the imp module - imp.find_module() looks for the module
and will cause an ImportError if the module does not exist.  But it will
not actually run the file code.  So the try/except block is put around
imp.find_module().  If there was no ImportError at that point, we then
to load_module() outside the try/except block, and if that fails we die
here immediately.
Do all the module search in try/except block
Fix the new get_module()

Had the arguments inverted, and didn't previously cope with modules deep
 in the heirarchy.
Merge remote-tracking branch 'foobacca/import_fix' into fix/import-broken-plugins-2
Add test for importing broken cms_plugins
Merge pull request #2606 from foobacca/import_fix

don't swallow ImportError due to importing app that exists