Refactor ApiRequests

This makes working with and finding requests
much easier
Just generally keeps things tidier!

Also moved the tests for the test classes
into their own files
Implement SiteMatrix stuff

This inclused the SitematrixRequest and family class
Add protocal trimming to URLS

This will mean siteurls are easier to
'make the same...'
Enhance the filtering of sitelists in family
Split UsageException and test
Increase Api test coverage
Add Revisions and Userinfo Api requests
Make sure Request construction is always correct
Improve testaability of site requests..

TestApi now holds the requests it has executed in order
this means that after running things we can go back
and make sure that re requests were correct..
such as params etc.
Test bad construction of requests..
Add site->logout
Implement User class and tests
Implement Site->getUser()
Implement Page Class

Adds InfoRequest
Adds QueryRequest

Fixes UsersRequestTest
getUser(Talk)?Page from users