Rework TZ parsing and marshal the Time zone

* Much less duplication for HHMM parsing.
* Stricter and clearer methods for getting a DateTimeZone.
* Fixes incorrect types for offset.
* Fixes #1837 and #957.

Conflicts:
	core/src/main/java/org/jruby/RubyTime.java
	test/mri/excludes/TestTime.rb