Libify

This just extracts the large amount of code in ./bin/rbtrace into separate files in ./lib

I'm not OCD, the purpose is allowing `RBTracer` to be required and used as a library. This has some cool possibilities:

```
[vagrant] [05:40 PM:rbtrace(libify)] $ pry -I./lib -r./lib/rbtrace/rbtracer
[1] development(main)> tracer = RBTracer.new(`pgrep -f 'unicorn worker'`.strip)
*** attached to process 9079
=> #<RBTracer:0x00000004772618
 @attached=true,
 @klasses={},
 @last_nesting=0,
 @last_tracer=nil,
 @max_nesting=0,
 @methods={},
 @nesting=0,
 @out=#<IO:<STDOUT>>,
 @pid=9079,
 @prefix="  ",
 @printed_newline=true,
 @qo=327681,
 @show_duration=true,
 @show_time=false,
 @sock=#<Socket:fd 7>,
 @sockaddr=
  "\x01\x00/tmp/rbtrace-9079.sock\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
 @timeout=5,
 @tracers={},
 @watch_slow=false>
[2] development(main)> tracer.eval('RAILS_CACHE')
=> "#<ActiveSupport::Cache::DalliStore:0x0000000322adc8 .....
```
 
My plan is to use this to create a different set of bins that can interact with running processes using this remote eval