Fix memory leaks and improve code overall

Fix memory leaks: …
1. Make jCommander converters and validators non-static
2. De-reference strings, maps and lists of removed objects
3. Make all mutable static fields non-static and make classes modular
4. Properly close jmx connections
5. Properly discard instances from `instances` and `brokenInstances` lists
6. Properly close files
7. Upgrade log4j to latest
8. Use iterators only when necessary

Other changes:

1. Change variable and method names to follow Java conventions
2. Encapsulate classes and make fields private unless necessary
3. Use library to join strings instead of writing a method to do it
4. Break long lines
5. Use "str".equals(var) instead of var.equals("str") to avoid NPEs
6. Remove unused code
7. Upgrade from junit 3.8 to 4.11
8. Add new tests to test parsing commandline
9. Use properties to track dependencies' versions
10. Upgrade dependencies
11. Limit access modifiers to required levels of access
12. Code clean up and formatting
12. Bump version to 0.4.0