Fixed "Loading Content Twice" bug.

ContentManager used to store its loaded assets by the path passed into Load<T>(). Because of this, something like "Content\\Texture.xnb" and "content/Texture.XNB" would be loaded twice since it would fail the string comparison in the dictionary lookup.

Now we store content by a separate key, which is created by forcing the assetName/path to use all forward slashes and lowercase. This modified key isn't used anywhere else other than looking up already loaded assets, so it shouldn't break behavior anywhere else.

Note that this PR emulates the behavior of stock XNA, since path separators and casing don't matter on Windows.