Add Vacation date range feature without the sieve 'date' extension

Implements date range feature by generating regex rules, rather than 'currentdate' rule.

* if the 'date' sieve is present, it is used
* if not, and the 'regex' extension is present, regex rules are used. 
* if neither are available, the date feature is not presented.
* One regex rule per month is produced.  So for example if the range is 2014-09-27 - 2014-10-03, the rule produced is:

```
if anyof (header :regex "received" "(27|28|29|30) Sep 2014", header :regex "received" "([ 0]1|[ 0]2|[ 0]3) Oct 2014")
```

* if no date range is entered, no date rule is produced
* if a date range is entered, the range checked.  A range of up to 365 days is allowed, a range greater than this produces an error.
* regex rules are read back to display the range in the UI