Revert action caching.

Instead of caching the entire action instance (which is modified further down
the chain) various parts that make up this process will be cached instead
(where possible).

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
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>