Add attributes and initial sanitization, then spacing for readability.
Add logic to handle a single date query + top-level arguments. Adds a helper function, be_sanitize_date_time(), to DRY-up sanitization of date and time strings.
Simplify some of the date and time checks before adding to the date query.
Docs typo. s/YYY/YYYY.
Switch to checking empty() in the sanitization function. This mirrors the simplifcation change two commits ago.
Replace more uses of the word 'sections' with 'segments' for consistency.
Before and after variables got renamed and their references never got updated.
Add logic that attempts to salvage non-strictly-formatted dates and times.

This opens the door to using 'relative' date and time formats such as 'Wednesday August 6' with the year implied instead of something like '2014-08-06'.
An else in the date_time fallback formatting is unnecessary as it\'s defined in the beginning.
Add a third parameter to be_sanitize_date_time(), $accepts_string, for whether the calling argument check can accept a string.

This would only work as a fallback for the 'date', 'date_query_before' or 'date_query_after' attributes. The 'date' argument simply serves as a quick shortcut to defining the 'year', 'month', and 'day' arguments for any given date_query array.
The 'date_query_column' and 'date_query_compare' values don't need defaults as they fallback to the values of the global 'column' and 'compare' arguments in WP_Date_Query.
The 'date'` attribute definitely needs a timestamp supplied not a simple string. Whoops.
Make allowances for single-word relative date strings that don't contain -. Kind of a weird way to go about it but the explode needs the hyphen to proceed.
Formatting.
Merge pull request #77 from DrewAPicture/datequery

Add date_query support, props @DrewAPicture