allow callable objects to be passed into before/after options

since dates passed at the class level would not be evaluated at run time, if you are referencing `Date.today` or `DateTime.now` those would not be evaluated properly. This will accept a callable value for the `:before` and `:after` options.
if not using naught, perhaps inherit from BasicObject for the lightest object possible?