Unit Tests, Fragment Inheritance, ResolveUrlProvider

Here are some proposed updates to MOD.Web.Element:

* Added a unit testing project 80+ tests
* Updated the inheritance for `Fragment` to be `Fragment : Node, IList<Node>, IRenderable`.  This allows an `IRenderable` to return either an `Element` or a `Fragment` which is probably most important for an `HtmlDocument` so that it can return both the `<!DOCTYPE html>` and `<html>`
* Added a `ResolveUrlProvider` to Element so that developers can customize the way urls are resolved. This also enables that functionality to be unit tested.
* Enabled XML comments for the library and added appropriate XML comments to remove any compiler warnings
It smells a little like premature optimization. If we want to keep lazy instantiation, I think it would be simpler to write:

```
public Dictionary<String, String> Attributes
{
  get { return this.attributes = this.attributes ?? new Dictionary<String, String>(StringComparer.OrdinalIgnoreCase); }
  set { this.attributes = value; }
}
private Dictionary<String, String> attributes = null;
```