Don't return different objects based on shape of user data

Any consumer is then forced to deal with two completely different possible classes for returned values that behave differently depending on user data. I can't believe many developers test with both short Long fields and long ones, so there must be broken apps out there.

Given that this likely breaks some existing code, I don't really expect this pull request to be accepted. I'm just trying to contribute to the betterment of the world by removing a bug that bit me hard and will likely bite others.