Allow build tools to be obtained not just from a network share

The use case for this is using Bozo when your build tools either aren't on a network share or when you run bozo and you don't have access to the network share. Basically removing a dependency on a specific machine.

The first thing that's changed is runners which specify `required_tools`, such as the Nuget packager in bozo-scripts, will first search for a matching `Bozo::Tools::#{tool_name}` class. If this does not exist then the `build_tools_location` is searched. This keeps backwards compatibility.

The second is that bozo configurations can also now specify multiple `required_tool` that are retrieved during a prepare. I was using this on a project where I was using bozo to download development dependencies specific to my project rather than have several shell/bat scripts.

See zopaUK/bozo-scripts#40 for implementation of the nuget tool retriever