"Fix" type generation issues by sharing the constructor.

This is not a sufficiently safe way to differentiate between text and
files. We should probably look more closely at how FSharp.Data manages
this, especially since their ability to use either sample, web URI, or
file path is quite flexible.