merge requeset for refactored code and backporting offer.

Hi, @ConradIrwin , @kyrylo .

I have done refactoring to interception.rb and cross_platform.rb.
This refactoring makes interception.rb more behave abstractive. 
merge it please.
**this patch is dependent on changes what I requested [past](https://github.com/ConradIrwin/interception/pull/8).

and, I propose to backport to use TracePoint API for MRI v2.0 series.
because, In Ruby 2.0-p451, they've removed the information about
 raised exceptions from the thread, too. (see [MRI 2.0-p451 ChangeLog](http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_451/ChangeLog) )
If you accept this proposal, I will work it.

regards,