Re-openning #1587 which is part of the #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.
Replace custom ChannelDescriptor exceptions to use ResourceException
Move descriptor interaction logic to resources.