Remove raw pointers from Sam Readers/Iterators and Sam/Variant Writers

Additional work on #195

Waiting on #213 to add move construction/assignment tests
OK.  I would prefer to do this in a separate PR do we can include other cases where this is true (indexed_variant_iterator comes to mind)