Add @:keep metadata to Object

To prevent things being DCE'd on the client when we're trying to
send objects back and forth.  Hopefully nobody will mind...
Extended the length of username

(Some student usernames are really long!)
Compat change for dtx - Widget loop now takes 2 type params