Moved AtomicCounter into its own file and expanded API.

* Constructor defaults value to zero when no initial value given
* Constructor raises an exception if the default value is not an integer
* Added #increment method
* Added #value method
* #increment aliased as #up
* #decrement aliased ad #down
* Full specs written for all methods