Refactor counter implementation to be reusable
Implement Gauge in terms of Atomic

This means that we can no longer support 'modify'.
Bump version number to 0.4.0.0

The 'S.R.Gauge.modify' was removed as it cannot be supported by the
current implementation.

There were also backwards incompatible changes to the JSON API.