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.
I love Null Objects more and more. This code is just so much better.