Clean up Hash#fetch implementation.
Tie MapJavaProxy fetch impls to newly-split Hash versions.
Update jnr-constants to 0.8.5.
Move deprecated to bottom.
Remove broken and unsupported sampling profiler.
Remove nonstandard, unsupported, and barely-useful benchmark flag.
Add JVM properties for most command-line arguments.

This commit adds configurable JVM properties (also accessible as
-X flags) for most command-line arguments. Those flags can now
be set for JRuby applications that are never run directly at a
command line, such as those within an application server.

The new properties are under the "CLI" category in the property
list.

This commit also cleans up and formalizes the "Option" subsystem
a bit so it can be turned into an external library or used by
other projects. Support for Enum-based options was also added.
Checking for size of outgoing and incoming edges of the vertex after
removing a single edge

- After removing all incoming or outgoing edges, incoming or outgoing
  edges of a vertex are set to null
- But after removing a single edge, it is not checked that outgoing of
  the source or incoming of the destination should be changed to null
  or not
- This commit checks that condition and sets outgoing and incoming of
  source and destination respectively to null if the condition is met.