Find modules in path

This PR fixes the c++ code base in relation Anthony's module installation issue. The important highlights of this patch are:

* potential error-throwing code has been taken out of XML parser and fileloader class constructors and moved to init functions. relevant client code has been updated.
* added helper functions to the environment class to help with file searching and environment issues
* updated the dynamic loading class to search for libraries given either in the install directory or any other directories listed in the CYCLUS_MODULE_PATH environment variable. a test has been added to confirm this functionality works. 

important caveats: 
* there's still a lot of interplay between the environment, dynamic loading, and model classes, including in their respective tests. these relationships are ripe for refactoring (whenever anyone has time...)
* this pr does **not** fix the issue with installing rngs from non-standard locations. that's a configure-time issue that is hard coded into cycamore for those modules. we should have a discussion for how we want to proceed in this regard. I'll start an email thread.