changes: nested namespaces enforce their and parent validations; adds HashStack#gather

adds test for nested namesapces and params/validators

HashStack#gather provides all values for a given key

When Endpoint#run is called it will gather all :validations, not just
the closest one, and evaluate each one.

resource :machine do
  params do
    requires :serial, :existing_machine_serial => true, :desc => "The machine's serial number, e.g. 965ACD"
  end
  namespace 'serial' do
    # The custom ExistingMachineSerial validator will be called and enforced
    get do
      Machine.find(:serial => params[:serial]).first
    end
    namespace 'power' do
      # The custom ExistingMachineSerial validator will also be called and enforced
      get do
        Machine.find(:serial => params[:serial]).first.power_status
      end
    end
  end
end
adds 405 response for methods not supported on a resource instead of 404

For every resource an 'OPTIONS' route that returns an HTTP 204 response will
be added. Also a route that will return an HTTP 405 response for
any HTTP method that the resource cannot handle will be added.

The behavior up to now has been to return an HTTP 404 response if the
resource doesn't respond to the request's HTTP method.
Merge pull request #251 from simulacre/nested_namespace_validators

changes: nested namespaces enforce their and parent validations; adds HashStack#gather
Fix build: Rack::Test has been updated, now supports HTTP PATCH.
Merge branch 'master' into http_405
updates changelog and readme with HTTP 405 (Method Not Allowed) response details
Merge pull request #252 from simulacre/http_405

adds 405 response for methods not supported on a resource instead of 404
Adds Endpoint#declared for simple parameter filtering.

This solves at least part of the problem described by #219 by
giving a simple helper that can be used at the endpoint level
to use only declared parameters. Basic usage:

    class MyAPI < Grape::API
      params do
        requires :name
        optional :email
      end
      post :users do
        # POST /users
        # name=Some+Name

        # This will only have :name and :email keys
        declared(params)
        # This will only have "name" and "email" keys
        declared(params, stringify: true)
        # This will only have a :name param
        declared(params)
      end
    end
Updates CHANGELOG with Endpoint#declared
Remove faulty issue link.
Fixes issue where validations were pushed higher on stack.

See the spec for examples of a scenario that was failing.
Merge branch 'master' of github.com:intridea/grape
Correct default versioning strategy in README
:vendor option should be supplied when :using => :header in README
Fix README: A 406 error is returned, not a 404.
Add Grape::Middleware::Versioner::Header tests that should pass
Rewrite Grape::Middleware::Versioner::Header to use Rack::Accept
Rack::Accept is more robust than the previous strategy
:vendor is now a required argument if :using => :header
Use more meaningful error messages on 406 Not Acceptable
api.type and api.subtype should be set to the best available content type
You don't need to set both format and default_format
Merge pull request #258 from jpmckinney/readme

Correct default versioning strategy in README
Don't use named regular expression groups, which are Ruby 1.9-only