Add arg-sample code

@mjhubisz

This PR addresses issue #9 by merging the code needed for `arg-sample` into master.


I tend to like to use `protected` instead of `private` so that I have the option of accessing these variables in a subclass.  But that's just my preference.