Remove explicit contract field from User and EventStream

The fields depending on the contract are now set in the constructor,
instead of having getter read the contract object
Split UserTests into distinct classes

This class used to be split into partial classes which are now actually
distinct classes