issue-71

added jmx module, making use of statistics from Terracotta S3 repo
added StatisticsMBeanRegister  (user facing)
added stats observers for put/get/removal/eviction
missing stats gathering

Doesn't matter that it's not user-facing. This exception may get thrown based on the input to a public method (below). You are effectively overriding the root cause with an `AssertionError` which also hides the real reason it was thrown. This also will prevent one from writing a meaningful unit test to the public method (every negative test case must now expect an AssertionError, for whatever reason).