Validate UserTuple constructor input

Working on the LQT import patch bugs surfaced of bad data getting into
the database.  This problem has also been seen on ee-flow in spage's
watchlist. Talked about this with matt the other day, easiest fix is to
stop the data when it comes into the UserTuple.

This patch adds exceptions to UserTuple::__construct and a test that
asserts when the exceptions should and should not trigger.

Change-Id: I312b5eee3a6073b469319b6ce8755f8cc3640232
Merge "Validate UserTuple constructor input"