ed: better error handling

Add more precise errors for date parsing and calendars
It seem that all exceptions throw by ```from_undelimited_string``` inherit from ```boost::lexical_cast``` or ```std::out_of_range```, it would be easier I think to only catch these two.