Merge pull request #180 from pjf/179_file_locking

Wrap many disposable resources in `using` blocks.
Merge pull request #182 from pjf/settings

Updated settings for easier coding
Fix RelationshipResolver to examine provides as well.

At its guts, this is just a call to `LatestAvailableWithProvides()`,
but this commit also includes:

- Documentation updates
- `LatestAvailableWithProvides()` will list providers even if a real
  module has that name.
- A fancy `TooManyModsProvideKraken()`, which is the prettiest kraken
  you'll ever see in a stack trace. ;)

I've also adjusted `Main.GetInstallDependencies` to catch the
`TooManyModsProvideKraken` This doesn't ask which provider they wish to
use, but I'm delighted to see the GUI's "apply changes" box is greyed
out until they have a workable install set.  (So one can choose RSS, and
then tick RSSTextures2048 afterwards, and get a green install button!)

In other words we have behaviour that's at least as good as what we had
before. :)

Closes #175.