I decided to switch these back from adjusting invalid values to throwing IllegalArgumentException's
This keeps the behavior consistent....if we want to change this, I think we should uniformly change it throughout the project.
2.4.0 Release!
Updated versions to 2.5.0-SNAPSHOT
Merge remote branch 'upstream/master' into unstable_staging

Conflicts:
	build.gradle
	build.upload
	pom.xml