Regression spec for #1375.
Only set source encoding when specified from -K to match MRI.

It doesn't appear that MRI's source-encoding logic is the same in
1.9 and 2.0, so my fix for -Ku based on 2.0/2.1 codebase caused
test failures. But 2.0 and 2.1 fail the tests the same way. So
to compromise and allow the -K fix to work when specified, I have
modified this code to honor the -K encoding when specified, but
otherwise use the old default source encodings. This may not be
quite right, but it makes us match 1.9 again.
Support file input for PKey::RSA.new.
Update cacert for imap tests to newer edition.
Merge remote-tracking branch 'origin/jruby-1_7'

Conflicts:
	core/src/main/java/org/jruby/Ruby.java
	test/externals/ruby1.9/openssl/fixture/cacert.pem
	test/externals/ruby2.0/net/imap/cacert.pem
Fix bad merge.
Implement more Addrinfo-related logic throughout socket ext.

* Addrinfo.getaddrinfo
* Socket and ServerSocket binds that take Addrinfo
* Correct logic for SO and SOL constants in BasicSocket
* ServerSocket for listens in socket.rb
Incorporate fix for rubygems/rubygems#771.
Implement BasicSocket.for_fd and related fixes.

* for_fd consumes the given fileno/descriptor and initializes the
  type of socket for_fd is called against (TCPServer, etc).
* RubyTCPServer no longer keeps a separate reference to the server
  channel nor the address, to allow for_fd initialization.
* ChannelDescriptor will now also not decrement the reference
  count during finish logic unless close is specified. With the
  old logic, non-closing finish would still produce an error on
  future non-closing finish when it should do nothing at all.
Incorporate MRI's net/* tests into our suite.

test_imap seems to have a lot of failures and hangs, so it is
still excluded.
Return 0 to Socket.getaddrinfo when 2nd arg is nil