Change code coverage to JaCoCo

Cobertura is ancient, and JaCoCo coverage works well for
this project.
Fix part length checking for dates

Part length checking (year is 4 digits, month is 2, date is 2)
checked the entire input, not just the input consumed
by the date parser. The checks still passed, but only by
coincidence.

The updated code now explicitly checks that the entire
 input value was consumed by the parser correctly
 and explicitly.
Fix and suppress warnings

Warnings are really errors
Fix and suppress warnings

We can use diamond syntax now that we are using Java 7.