Allow input iterators to be used as input to the hash functions digest
and update. The length of the range is unknown up front.

Add tests for iterator based input method

Add tests for splitting the input into multiple updates. As a result of adding
these tests I discovered that the input can only be split at byte boundaries.
If we want to change this we will have to change stuff_into_state to handle
an unaligned destination.
Fix build break - added needed typenames
Copy construction and assignment operator for the byte suppliers are now
forbidden using "= delete" - a more direct way of stating that we don't
want them.

The byte suppliers now assert that the iterators they are parameterized
over must supply bytes.
Fix build break around iterator_traist. Make sure that the right header is
included, and use typname where it is needed.
Merge pull request #23 from BobArcher/bob_archer_sha

Bob archer sha