- added constructors to allow passing in config instead of from system properties
- greatly reduced use of static fields and methods, use final where possible
- use logging library (log4j) instead of system.out
- code formatting / modernization:
  - use braces around 1-line if statements
  - use foreach loops
- synchronization when opening new stream and when reading/writing to stream in daemon mode
- added junit and basic unit test
- fixed bug in splitting tag name/value, didn't work when value contained a colon
- updated Tag.parseValue() to allow returning a Double when the source value is a fraction (e.g. 1/4)
merged changes from mattshep2000 @ 65644e921fb6009414c2270454516c5fe2dcdc30
moved shutdownCleanupTask() code into close()
updated testTags() unit test for additional tags added in earlier merge
- added startUp() method to allow calling externally
- new shutDown() method is an alias for existing close()
added logging during iterations to show activity
no camelcase on startup() and shutdown()
set DEFAULT_PROCESS_CLEANUP_DELAY to 0 (never)
corrected for loop to start on 1 for logging purposes
catch "Stream closed" IOException that occurs if daemon process has exited, try restarting the daemon
Replaced log4j with slf4j.

This removes the dependency on log4j and allows the user to use whatever logging framework they want, e.g. log4j, JUL, JCL, logback, etc
Replaced ant with maven.

Removed the build.xml since maintaining 2 build processes is a waste of time
Added *.iml to ignore.

Prevents Intellij project files being committed.
Added slf4j-simple to test scope.

For the sake of a couple of simple unit tests it's all that is needed to get the logging output.
Updated tests to use junit4 annotations
Updated test to get resources via relative classpath instead of a hardcoded path