Unit Test Fixes

A few simple unit test fixes to make things more pleasant to work with.

First places where `Assembly.GetEntryAssembly()` are used now check for null.  This is because when running the unit tests via the VS IDE with Resharper this method returns null. Why?  Because [according to the docs](http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getentryassembly.aspx) `GetEntryAssembly()` can return null when called from unmanaged code which I guess is what it does from VS.  Either way it seems safer to test and costs us nothing.

Second I replaced two places where `Assembly.GetExecutingAssembly().Location` was being used.  The point of this code was to ensure the right path which can find the data files needed for running the tests.  When the "executing assembly" is a unit test runner like ReSharper it does not exist in the same folder as the test data.  `AppDomain.CurrentDomain.BaseDirectory` is the proper way to get the directory where execution started.