Major overhaul of controlling application

- Move to clihelper for application control and daemonization
- Indirectly move to dictconfig for logging configuration
- Change in configuration format due to clihelper move, all config but logging and daemon go under a new top-level node called Application.
- Remove backwards compatible configuration
- Remove utils
- Remove cli tests
- Add processor as a near clone of the rejected_consumer package
- MCP cleanup
- Use collections.Counter for counters
- Keep track of idle and used time
- Add flag for logging stats
- Consumer controller code updated
- Setup.py fixed
- Readme updated
Fix the test references to rejected_consumer
Remove the rejected.py and use of 2.7+ collections.Counter
Move to multiprocessing

- Update README.md to reflect current multiprocessing setting
- consumer updated to have RejectedConsumer extend multiprocessing.Process
- Use signals in RejectedConsumer for consumer control
- in MCP use multiprocessing.Queue passed to the RejectedConsumer for passing of stats back up
- Signal RejectedConsumer from MCP with SIGINFO when stats are requested
- Remove IOLoop Usage and rely 100% on threading.Timer
- Move blocking functionality in run() to using signal.pause
Updates to logging

- Have a startup info line
- Change a few logger.info lines to logger.debug
- Dont redefine consumer in mcp.py
- Get the version of the module being imported to log output it
Move from SIGINFO to SIGPROF

SIGINFO is missing in python 2.6
Provide stats at the top level and at the consumer aggregate level

- Keep track of global and consumer grouped stats as well as per-process data
- Lower shutdown max wait and change logging output
Handle consumer stop as a signal in addition to being called outside of a signal handler.

- Add an additional debugging line for mcp when it can't find a consumer to remove (which shouldn't happen)
Add a shutdown timer in the consumer

Will shutdown the thread if it can not cleanly shutdown after stop is called.
Cleanup the shutdown code
Revamp shutdown handling
Fix stats reporting
Try and brute force a MCP hang
Handle the assertion error when shutting down
Another take at handling the same PID problem
Drastic in the MCP too
Rename processor to consumer, consumer to process, add unittests for process
Move these classes into their own file
Add coverage for the data module
Move the mock classes into the mocks file