JMX support introduced - fixes #35 and options modularity refactored - fixes #52

well, it's a pain to maintain separate branch, let's merge it.

The benefits (true modularity):
- reloadable modules
- jmx exposed attributes available in the modules
- spy module introduced (to have correct separation of what options fit where)
- reload causes all previously set to be forgotten
- reload can be done explicitly (via JMX)
- much simplified tests setup (as really reload works)

any objections?