refinement of closest date machinery

Acting on all `date` parameters can lead to unexpected results.
Solution: To use the closest date machinery in a task, you would
need to do the following:

1) implement a method in your baseclass named `closest`, that takes
   no arguments and returns by convention the closest value for
   `self.date` (- you can return anything, though)

2) if you want a task to map its date parameter to the closest
   date, use `gluish.parameter.ClosestDateParameter` explicitly;
   `gluish.parameter.ClosestDateParameter` is a simple
   `luigi.DateParameter` subclass, but triggers the closest date
   parameter rewrite

In short: Implement `closest`, use parameter name `date` and
`luigi.DateParameter` for normal behaviour and `ClosestDateParameter`
to use the value from `self.closest` for the `date` value.
v0.1.25