Clean up DataTypeFactory

Fix documentation and make stuff `private` (we are not using `protected` by default any more).