clean up tests

- check permissions using system properties, instead of temporary files
- extract 'isSystemClass' checks into private helper
- clean up modifiers
remove unnecessary permissions for tests
cleanup

- refactor methods to use single return statement when reasonable
- improve modifiers
- replace AccessControlException with plain SecurityException
since we don't use the AccessController
- reduce JavaDoc size
add extra PMD rulesets
drop support for JRockit

We can't test this properly on a non-JRockit JVM,
and it's dangerous to treat 'com.jrockit' classes as system
if the JVM might not restrict their creation.
avoid dependency on String formatter since this tends to explode on JVM fork.

ResourceBundle loading goes wrong in early stages of forked JVMs,
so it's safer to assemble a String manually.
This only applies when in log mode (ie non-production) anyway.
add code coverage checking and reporting