Keyqueue and repository structure

- Changes the directory structure so the all the source code is in its own folder called "awful". This is more in line with other python packages.

- Implemented a KeyQueue data structure that should provide a threadsafe 'OrderedDict' type queue. You can basically still access jobs once they are in the queue.

Note that, hopefully, the Mdrunr API won't have changed too much.

This PR is not quite ready for merging, and might be pretty horrendous to merge because of the new repository structure. I'll try and do some more work on it and merge asap, before you do too much work on the daemon / shell stuff.