Add fields and field annotations to jruby.
Use ordered hash map to ensure fields are defined in order specified.
Fix issues with java_signature for parameters.
Better fix.
Update testing doc.
Add field annotation.

This allows a seralization objects to be constructed in ruby.
Formatting.
Correct readme.
Fixing hashing consistency across JVM instances.

Several of the core JRuby classes calculate hash codes based on java or ruby
object ids. This doesn't produce consistent hashing across JVM instances, which
is needed for distributed frameworks. For example, Hadoop uses hashCode values
to distribute keys from the map phase to the same reducer task (partitioning).

This commit adds hashCode (and ruby's hash method) implementations for
RubyBoolean, RubyNil, and RubySymbol. RubyBoolean and RubyNil simply return
static, randomly-generated hashCode values that are hard-coded. This replaces
the default java Object#hashCode.

For RubySymbol, the previous implementation of hashCode returned the symbol's
id, which could be different depending on the order in which symbols are
created. This updates it to calculate a hashCode based on the raw symbolBytes
like the RubyString implementation, but with a RubySymbol-specific seed and
without the encoding addition for 1.9. This value is calculated when symbols
are instantiated so the performance impact should be minimal.

This commit also adds a RubyInstanceConfig setting and CLI option for
consistent hashing, jruby.consistent.hashing.enabled, which controls whether
the Ruby runtime's hash seeds (k0 and k1) are generated randomly. When set to
true, they are set to static values. These hash seeds are used to hash
RubyString objects, so this will make string hash codes consistent across JVMs.

(later commit...)

Updating hashCode implementations.

Per discussion on the last commit's pull request [1], updating the
implementations of hashCode for RubyNil and RubyBoolean. Now the hashCode
behavior for nil and booleans will only change when consistent hashing is
enabled. Adds a hashCode instance variable to RubyBoolean and RubyNil that is
set in the constructor to the Object#hashCode value (using
System.identityHashCode) or a static value.

[1]: https://github.com/jruby/jruby/pull/590
IO.copy_stream should handle objects that respond to read or write. Fixes #437
Fix string concatenation with a number as per rubyspec behaviour.

Following https://github.com/tychobrailleur/jcodings/commit/8536b4fdeecf3dec31ca868803654b3ab7829915, the incorrect behaviour of String#concat with
a number was made obvious by throwing an EncodingException.  MRI changes
the encoding of the String if the concatenated codepoint is within
ASCII-8BIT range, and throws a RangeError otherwise.
Improve GzipReader#gets performance.

Previously checked the whole line for the separator after each character
read. The new version instead just checks whether the line read so far
ends with the separator.

Note that the current version of ByteList#startsWith/endsWith assumes
the index and byte list arguments are valid, which means we must not
call the method before the line is long enough.
Added rake task for running IR specs
Add OSGi Test
Make Time#to_date compliant with MRI 1.9-2

Time#to_date should use the proleptic Gregorian calendar to construct a Date,
but should return a Date object with the default calendar reform day. This is
unlike the behavior of Ruby 1.8 Time#to_date, which was private and seems to
have served as the basis for the current implementation. A specification
for this method has been added to rubyspec.
Upgrade JRuby to reference OSGi 4.3

Now, if JRuby is running in an OSGi 4.3 container, it will use the
more straightforward (and standard) BundleWiring to find the
ClassLoader, rather than the old reflection tricks.  If running in
an earlier container, will continue to use the old method.
Merge branch 'feature/add-osgi-test'

Conflicts:
	.classpath
	nbproject/project.xml
Update parent artifact version
Merge pull request #723 from jruby/copy_stream_read_write

IO.copy_stream should handle objects that respond to read or write. Fixes #437
Time#strftime with %z formats a time with fixed offset as '+/-HH:MM:SS' with '::' specifier