UserAccess GetAll Users

Provided a method to get all of the
users within the database. The only
reason this method is allowed is because
it is assumed that there will always be
a small number of users. Once this changes
we will need to implement batching
Issue 1: Ping Timeout Config

Now using the correct look-up string
UserState Factory Method
Ping Users and Change State Demo

UserRegister has been modified to show use the UserAccess
to collect all of the users and then periodically update their
state by randomly creating ping success/fail results
PingBots Check Device Activity Demo

UserRegister no longer handles the "random ping" logic to
change the user state. Instead, a PingBot is created for
each User and each PingBot is responsible for determing
if that Users is on or off the network

UserState messages have been moved in to the UserState object.
Having them out and in global scope was creating some odd
message behaviour (confusion with a different message of the same
name)
Functional PingBot

PingBot has been updated to actually ping the
device of its user.

There is a known issue where a successful connection
will not return a Connected message. This means that
any successful pings will be unseen and the status will
be unchanged for that user.