Refactor channeldescriptor to use FileResource

Re-openning https://github.com/jruby/jruby/pull/1587 which is part of the https://github.com/jruby/jruby/issues/1452 effort.

This version doesn't introduce any backwards incompatible changes and should be ready for branch 1.7 merge.

I will follow up this PR with a refactor of org.jruby.util.**.* stuff to take advantage of RaisableException concept.