Fixes connection testing

Tests server for responsiveness before beginning tests
Adds a timeout clause to the communicate()
TODO:
- Figure out why I have to write to the server before I can successfully
  close the connection
Moves executables to lib/task_engine/

Changes structure:
- All code for task_server is now a library file
- Executable is a simple wrapper in bin/ to run the library code
- I think this is more consistent with gemfile standards
Updated tests with new structure
Adds asychronous updates, toggle_status command

- Updated to serialize task_engine for immediate startup
- toggle_status updates status asychronously locally and remotely
- Also: tests updated, select_tasklist fixed, working test for
  select_tasklist added, guardfile updated for new app structure