Add an OffsetMethod

Permits specifying other methods of determining the offset, such as querying the broker. A better solution that overriding the StartingOffset field.

@burke @fw42