Make require() threadsafe again.

Is there a unicode glyph for facepalm? Probably should be. Put it here.
Take palm. Apply to my face.

The patch for LOGSTASH-1223 had a crazy hack to work around
'require("openssl")' taking a super long time. Unfortunately, it also
made require() not threadsafe. Oops.

While poking at the problem, I found that doing
'require("shared/jruby-openssl")' before require("openssl") actually
makes it as fast without the threadsafety problem.

This commit should fix the following many bugs:
  LOGSTASH-1310, LOGSTASH-1519, LOGSTASH-1325, LOGSTASH-1522

The reason 'openssl' is implicated here is because of the monkeypatch.
The common factor in user-reported problems is that using the tcp input
while also running the web interface in the same process, and tcp input
loads openssl, which does bad things and causes the web interface to
fail to load libraries it needs (like base64).

Data:
    # Before this commit:
    % java -jar build/*.jar irb
    >> time { require("openssl") }
    => 1.763

    # Without the patch for LOGSTASH-1223
    % java -jar build/*.jar irb
    >> time { require("openssl") }
    => 17.715

    # With this change
    % java -jar build/*.jar irb
    >> time { require("shared/jruby-openssl"); require("openssl") }
    => 1.881

Similar performance solution without the thread safety problems.
Merge pull request #834 from jordansissel/fix-monkeypatching-require

Make require() threadsafe again.
Upgrade ftw

The only change in ftw is that it now only loads backports on ruby 1.8,
which should help speed up the startup time of any plugins (and web)
that use ftw.
Merge pull request #835 from jordansissel/upgrade-ftw

Upgrade ftw
Avoid having 'remote: /some/path' in the gemfile.locks

When using bundler's "gemspec" setting it hardcodes a
local path as the "remote". This causes every 'bundle install' or
similar invocation on any other workstation to change that file simply
because the remote has changed. Not good.

Work around it by evaluating the gemspec ourselves and generating the
gem dependency list from that.

Same effect, better result, I think.
Merge pull request #836 from jordansissel/work-around-bundler-more

Avoid having 'remote: /some/path' in the gemfile.locks
- Add rubysl library as a dependency if we're on rbx.
- Additionally, because some gem installations require rubysl (under
rbx), make gembag install it first before running bundler.
- add rbx
Merge pull request #837 from jordansissel/add-rbx-gemfile-lock

Add rbx support for dependency stuff...
Merge git://github.com/logstash/logstash