Added type hinting in Rolemodel

Because of the Visitor interface, which is implemented all over the place
(including by anything that implements Service\Modifier), there are a lot
of changes outside of Rolemodel.

I also changed  the names of some variables, but they were local
variables, so it should be completely unconsequantial.