Automated test refactoring

This merge introduces a new shared mock object system to the automated tests that should allow more accurate tests in the future as well as more rapid development of new tests. Rather than developing a series of one off, minimalistic mock objects, I've created a series of reusable mocks for the SoftLayer API that mimic real output so that we can more reasonably simulate how the code will function. I've applied these new mocks to several areas of the system and showed how they can be shared between the HardwareManager unit tests and the CLI server module integration tests. I've also created a new set of CLI BMC module integration tests, which further build upon the shared mock system. Lastly, I've moved the tests out of the SoftLayer directory and up to the project root per a discussion we had last week.