Change arguments of controller initializers to keyword args

The server needs to create Packages from a worker thread, outside of
LocalController.initialize(), and then pass them to
LocalController.__init__() instead of an URL.  Restructure Controller
initializer arguments to support an optional url parameter.
Move package creation outside of LocalController initialization

Package creation is done prior to the rest of the LocalController
initialization in order to confirm that the VMNetX server can connect and
authenticate with the VM server before returning a token to the user,
and to move the synchronous creation outside of the main event loop.
vmnetx.controller.local: Add viewer_password as optional init argument

When tokens identifying local controllers are generated before the
controllers themselves are initialized, adding the viewer_password
as an option when instantiating a controller allows the pre-generated
token to be used as the viewer password.
vmnetx.server: Add multiple VM support

The VMNetXServer class can now support the launch and management of
multiple VMs.  A simple Flask HTTP server acts as a control interface
and accepts requests to create tokens.  Local controllers are created on
demand when users connect to the server.