Revert "reconcile Enum(s) and Library with MRI"

This reverts commit ee67ea811d4a86b9a0ab62d4e7c0ac57da20b8cb.
Make ThreadContext available
Switch to use resources to get directory entries.

Current jar Dir.entries implementation doesn't return "." and ".." so to keep this behavior in 1.7,
I've moved the "." and ".." addition logic to RegularFileResource. Unfortunately fixing the jar files to
support such behavior would require and invasive refactor of File/Dir implementations to be able to support
expanding '..' in jar file names.
[IR] Fix broken handling of non-ruby (java) exceptions.

* While running MRI tests, occasionally, ran into problems with
  $! not being set properly. Narrowed it down to when a java
  exception was being raised (StackOverflow, NullPointer, etc.)
  which wasn't being handled properly.

* Cleaned out existing code and reused AST code that distinguished
  between Ruby and Java exceptions. In the process, $! is now
  set whenever a Java exception is encountered.

* Now, MRI tests run without crashing.
[IR] Added toString for BuildLambda instructions.
Some new nodes and stuffs to better handle required keyword argument handling
Some new nodes and stuffs to better handle required keyword argument handling
Merge pull request #1526 from ratnikov/fileresource-rubydir

Change to use FileResource to get entries for RubyDir (will follow up to re-add the non-TC initialize methods for backwards compat)
Add backwards compat shims in case Java code is calling these methods
Merge with jruby-1_7
[IR] Discard additional "_" args in a block.

* Lets me run all MRI tests to completion with just a LinearizeCFG
  pass.

* Before this fix, the following snippet would have crashed with
  these args: -X-CIR -Xir.passes=LinearizeCFG

def foo
 yield [1,2,3,4]
end

foo { |a,_,_,_| p a }
cleanup and re-arrange some imports to be more readable
implement BC specific (factory) helpers using BC APIs "directly"

we're trying to avoid registering the java.security provider since it's problematic in environments with multiple runtimes started

+ start implementing our own [security].getInstance factory methods
start using our factory methods instead of the java.security stuff directly
replace Signature.getInstance usage with a BC first than rest of providers one
cleanup PKeyDSA to use our own factories - added `getKeyPairGenerator`
setup our own getMac factory and use it + some minor HMAC cleanup
- mostly do not catch and hide argument to_s conversion errors raised
building strings ( the Java "way" :)
deprecate doWithBCProvider and avoid it in code base (NetscapeSPKI)
generixize getWithBCProvider's Callable lambda interface
NetscapeSPKI now loadable even without the BC API (fails on invocation)