Addresses issues #29, #30, #31

This pull includes a number of cleanups and improvements surrounding the File System provider.

1) Issue #29 was addressed, allowing relative paths to use a folder other than the root folder of the project
2) Issue #30 was addressed.  The Context used for tracking changes was moved to a custom type, and is now
handled per-folder when a folder is used by the type provider, instead of tracking all subdirectories recursively when a provider is created.
3) Each FileSystem type provider is now a separate provider, so invalidating the relative path provider doesn't force all other path providers, as well as the registry TP, to invalidate
4) Added CommonPaths (+ docs), which provides a simple API to pull out various common folder locations from the File system.  This is mostly a wrapper around Environment.GetFolderPath, though other locations can be fetched cleanly as well, using a single API (temp folders, exe paths, etc)