Cleaned up shutdown logic (fixes #31):
- Rearranged shutdown order to be more reasonable
- Removed JVM shutdown hook to call server shutdown
- Added monitor which kills rogue threads after 8 seconds