Documentation edits

Just a few things I fixed up while reading the docs.
locations.rst wording tweaks
Added MessageUrn loopback tests

A few simple tests to make sure that MessageUrn is able to reacreate the
type it was passed in... which is not always the case.
More MessageUrn loopback tests

Additional tests covering messages with more than one generic type
parameter.
First implementation of message type parser

A static class that enables more complex message types to be correctly
parsed to .Net-compatible, GetType-loadable type names. (Makes some of
the loopback tests go green.)
Add assembly name to message URN

MessageUrn assumed that the message type was defined in an assembly
named the same as its namespace, which does not always have to be the
case.
Fix for a .NET Uri bug

After some poking around it turned out that .NET < 4.5.1 incorrectly
esapes some characters essential to MessageUrn doing its job properly.
New code cleanup

Using StringBuilder instead of a simple string to speed things up,
renamed parser to something more palatable, plus some comments.