Added a copy() method to AbstractHistogram.

Sometimes you have a histogram that you'd like to distribute to a number of threads, so each can have their own to work on without contending, and then you can later add the histograms together when the threads are done with their work.

This, however, becomes difficult if you don't know how a particular histogram was built. To solve this, I added a `copy()` method to `AbstractHistogram`, that will create an identical histogram. You can then use `reset()` to clean it of data, and give more copies of that to your worker threads. When they are done, you can `add()` the histograms back together. It's a nice workflow, that just needed this `copy()` method.