Fixing issue #19, plus some design changes

Hi Paul,

Could you please take a look at this commit, and see what you think.

It contains breaking changes, but in my opinion this shouldn't matter as we're still on 0.x versions.

* This commit addresses issue #19 - where collections of builds and projects are not fully hydrated.
* I've made changes to how the BuildLocator stuff works.
* I've split some methods, which do not depend on TeamCityCaller, into extension methods.

If you like what I've done, I'll carry on and implement issue #20. Plus maybe some other stuff too.

Simon