Support enumerations and improve update/type checking * In most cases trust type set when retrieving values from database, and have updates conform to that before checking (so not checking a string integer against a true integer) * Support testing updates if original value is null * Add custom exceptions * Increase and improve testing