Fix Issue with Tests Failing ( HK2-223)

There was a bug in how mock instances were being created. What was happening was that a spy was being created instead due to the fact that services were being created dynamically. 

1. analyze test class fields, create and cache services up front.
2. added support for injecting named services 
3. renamed and refactored test classes and fixtures to make them more contextual and have less verbose names
4. added more unit tests.
Merge upstream/master
1. added support mocking/spying on Provider service
2. fixed issue with spys and mocks not being created if they were not defined/declared in the test class.
1. since we don't just support spying anymore i took the liberty to remove "spy" and rename a few classes
2. documented complex  logic
3. did a little refactoring and moving around a few classes
4. fixed issue with test classes when they lack @SUT annotation failing and also added a unit test for it.
Merge upstream/master
Merge pull request #5 from saden1/master

Fix  HK2-223 and Added Few Enhancements