Add TextureCubeWriter and fix for ExternalReference

In our game engine we create and write `TextureCube` via the content pipeline.

Changes:
- `TextureCubeWriter` added. Creates same output as in XNA.
- `Texture2DWriter` changed to match `TextureCubeWriter`. (Unnecessary comment/calculation removed. Output is the same as before.)

Plus, here is a fix for external references:
When an `ExternalReference<TextureContent>` is stored in a `Dictionary<string, object>` it can't be loaded at runtime. The reason is that the dictionary values are written with the `ReflectiveWriter<object>`. The `ReflectiveWriter<object>` writes `"ExternalReferenceReader'1[[TextureContent]]"` as the runtime reader.
But `"ExternalReferenceReader'1[[TextureContent]]"` does not exist. The runtime reader needs to be `"ExternalReferenceReader"`.

The following changes solve the problem:
- `ExternalReferenceWriter<T>` needs to override GetRuntimeReader and GetRuntimeType.
- `TextureWriter` needs to be added. The TextureWriter is never used to write anything. It is however used when an `ExternalReference<TextureContent>` is written.