Isolate classes from Base to separate files

I was looking at Sinatra source code, and tried to understand how it works. The first thing I noticed is "there's SO MUCH stuff in `base.rb`", seriously it's pretty easy to get lost there.

I isolated some of the classes from base to separate files to the point when it would require to fiddle with the project hierarchy to proceed. `base.rb` has shrunk with ~800 LOC.

This is my first attempt at a open source contribution like this, so I would understand if you would consider my efforts pointless.