Refactor the UserPresenceFactory to implement minimal concept of a user queue

Renamed some variables, moved a bit of code, implemented very minimal concept of user queue.