change error format to include reason in message

This causes quite a few tests (and code bits) to fail. This is done to
fix incorrect usage of `erlang:error/2` when `/1` should have been
used. Repairs will come next.
add `ezic_date:assert_valid` and related tests.

This is a simple implementation that relies on the validity enforced
by erlang's date functions. It will be used in has_dtc_*, and probably
other API methods as well.
fixes new error format catching; implement has_dst_* error reporting

The changes to error reporting in 17b20de6c3b necessitated changes to
the tests. All tests pass with these changes.

`ezic:has_dst_*` now reports `{error, {baddate, _}}` on invalid dates.
implement baddate error checking and reporting for all API functions
eliminate badDateTime error, standardize on baddate
change test suite name to be more specific re: what's being tested
Merge branch 'invalid_dates' into v0.3.0