Implemented IntermediateSerializer.Deserialize

This PR implements `IntermediateSerializer.Deserialize<>()` and replaces the implementation of `XmlImporter` with it.  All the unit tests added in #2655 successfully pass.

![tests](https://cloud.githubusercontent.com/assets/103522/3566666/f97ae65c-0afd-11e4-894d-ccd4e40dc9ff.PNG)

I fully expect there to be holes in the implementation and cases we're not handling.  Please submit bug reports with specific cases that we're not handling correctly.

Things left to do:

  - Some better error reporting with file and line numbers.
  - Add `IntermediateSerializer.Serializer<>()` implementation.
  - More unit tests.

Fixes https://github.com/mono/MonoGame/issues/2798.