Don't import luigi.worker from __init__.py

There's some really fishy bug going on with multiprocessing that we are investigating. It *seems* like (but still to be confirmed) that luigi.hadoop ends up importing luigi.worker which in turn imports multiprocessing. multiprocessing *seems* to have a bug causing an exception in the global scope in case the temporary directory is too long (bind() fails if the temp path is > 107 characters, this is a known UNIX issue)

Exception from a Hadoop job:

  __import__('pkg_resources').declare_namespace(__name__)
Process SyncManager-1:
Traceback (most recent call last):
  File "/usr/lib/python2.6/multiprocessing/process.py", line 232, in
_bootstrap
    self.run()
  File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python2.6/multiprocessing/managers.py", line 517, in
_run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/usr/lib/python2.6/multiprocessing/managers.py", line 136, in
__init__
    self.listener = Listener(address=address, backlog=5)
  File "/usr/lib/python2.6/multiprocessing/connection.py", line 106, in
__init__
    self._listener = SocketListener(address, family, backlog)
  File "/usr/lib/python2.6/multiprocessing/connection.py", line 227, in
__init__
    self._socket.bind(address)
  File "<string>", line 1, in bind
error: AF_UNIX path too long

Even if the theory above isn't correct, this still cleans up some import dependencies, by moving Event to its own module