Caching of provides and method arities.

Caching of a controller's provide handlers as well as the method arities can
lead to a nice performance boost of around 300 transactions/second using the
following benchmark:

    require 'innate'

    Innate.middleware :live do
      run Innate.core
    end

    Innate::Log.level   = Logger::ERROR
    Innate.options.mode = :live
    ENV['RACK_ENV']     = 'none'

    class MainController
      Innate.node('/', self)

      def index
        return 'index'
      end
    end

    [:fast_mappings, :cache_provides, :cache_method_arities].each do |key|
      MainController.ancestral_trait[key] = true
    end

    Innate.start(:adapter => :thin)

Benchmarking this was done by running `siege -c 10 -t 5s -b HOST` and would
initially result in around 1700 trans/sec. When using this commit this sits
between 2000/2100 trans/sec.

To prevent any potential issues the caching of provides and method aritites is
disabled by default.

See Github issue #7 for more information.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>