DRY: split api_helper in shorter files

This is the first step to give more room to filtering functions
Failing spec to support sorting by time
GET /concerts/?sort=time sorts by ascending time
GET /concerts/?sort=-time sorts by descending time
DRY: Automatically create fixtures from attributes
Rspec-api-doc DSL for POST (valid and invalid)
DRY: 'fixtures' accesses the resource fixtures
Rspec-api-doc DSL for PUT (valid and invalid)
Merge branch 'extract-fixtures'
DRY: Reuse attributes as PUT/POST parameters

Note: *all* the attributes are being sent as parameter, which works
since the Rails controller has a whitelist, but will be improved later
by adding read_only attributes
DRY: Expect parameter values in PUT/POST response
DRY: Accept null parameters in PUT/POST requests
Merge branch 'put-and-post-api-requests'
Move fixture-related functions in new helper
Rename fixtures to instances
New Samples class to abstract model instances

Rather than polluting the main namespace with ActiveRecord-related
function, a new Samples class is provided that delegates AR functions
to a `model` accessor, giving room to extend for more functions that
are only required for the purpose of fixtures
New Samples#raise_error_on method

Rather than polluting the specs with details on how to mock a failed
save, add a method to the Samples class created for fixture purposes
New Samples#any? and #none methods

Rather than specifying `instances.first` or `-1` in the spec to indicate
an existing or unknown instance, this behavior is delegated to the Samples
class which ensures that an existing or unknown instance is always found.

Note that (for now) examples with the same URL must be separated because the
parameter are assigned with a `let` inside the group example, and this would
not allow requests with the different value to be grouped together. This will
be improved later.

Note that the lazy evaluator in `none` requires Ruby >= 2.0.
Failing spec: get '/locations/:location/concerts'

This is the starting point for a filtering functionality
Code to satisfy '/locations/:location/concerts'

The tests pass, however they are weak for two reasons:
- they do not check that the location in the results always match the filter
- they do not guarantee that the instances include both concerts at that
location and somewhere else.

This will be fixed in the next commits.