* 1.3.0 - May 23 2016
- Instead of calling "usrsvc" as a subprocess from "usrsvcd", move the usrsvc client into a module and have usrsvcd fork and execute it. This allows usrsvcd to continue to manage processes after a bad configuration, by having usrsvc inherit the previous configuration as stored in usrsvcd.

* 1.2.6 - May 23 2016
- Wait 1 second after spawning subprocess during "usrsvcd restart", or we may exit before child process is created.
- Inherit env during "usrsvcd restart" to inherit any PATH

* 1.2.5 - May 17 2016
- Fix program stop not working after refactoring

* 1.2.4 - May 16 2016
- Fix some typos found by Sergey Fukanchik. Thanks!

* 1.2.3 - May 16 2016
- Fix stupid RST MISformatting of README. Why can't it use markdown?

* 1.2.2 - May 11 2016
- Wait longer before sending kill -9 for "usrsvcd stop"
- Add "usrsvcd start" which is same as just "usrsvcd" but intuitive.
- Add a --readme  option which will print the README
- Cleanup the usage for usrsvc

* 1.2.1 - Apr 28 2016
- Fix README path
- Ensure dict keys when printed in error messages are str(list) instead of just str() because python3 otherwise adds "dict_keys(['blah'])" to the str.

* 1.2.0 - Mar 21 2016
- Refactoring of Monitoring to allow more and better monitoring
- Add new property to Monitoring, rss_limit, which if specified will cause the
program to restart if it exceeds that many kB of Resident Set Size (private
memory)
- Some fixes and improvements to using --debug
- Set a maximum 3-second timeout to run monitors per program, so some issue
with some monitor is isolated



* 1.1.1 - Mar 11 2016
- Turns out python 2.7.8 does not have the enum type, and we should support older python 2.7s, so 
give a fallback method for returnCodeToString that doesn't rely on enum

* 1.1.0 - Mar 11 2016
- Add "--parallel" flag that can be used with "usrsvc start/stop/restart all"
to perform the action in parallel instead of serially.
- Instead of a flat "did" or "did not" start, capture more conditions on WHY
we couldn't start a program
- Much more logging in the realm of starting programs, relating to conditions
of failure
- Add more error codes to ReturnCodes for more specific reasons of failure
- Implement ReturnCodes.returnCodeToString which will get the string
representation of the return code.
- Use the string representation of return codes in logging
- Be more verbose in several places with logging
- Change from raising exceptions in startProgram to returning relevant error
code for better reporting

* 1.0.0 - Mar 9 2016
- Initial Beta Release
