Fix nested exposures under Rails 3.1

Fixes the problem demonstrated in:

  https://github.com/acumenbrands/decent_exposure_bug

and alluded to in some comments on #67.

When nested exposures mapping to a has_many association are
instantiated, the fast-path code introduced in 6e913c3d causes the
parent association to return an Array instead of an
ActiveRecord::Relation. This caused operations on the child to fail with
"undefined method `new' for #<Array:...>".

This commit adjusts the fast-path code to only return the scope if the
scope is already a Relation.
Extract method: method generator
sends the default exposure to the override block with specified

Changes the default exposure access to a `call` API

As discussed, I changed the method of obtaining the
default exposure value to be lazily evaluated on
an object that is received by the block.

Includes specs and an update to the README
Uses a Proxy Object for the default for a custom block

The proxy object will lazily evaluate the default
if it is used in the custom block.
Merge pull request #91 from davidbiehl/proxy_object

Allow default exposure to be used in block
Merge pull request #90 from acumenbrands/fix_issue_67

Fix nested exposures under Rails 3.1
Prefer duck typing to type matching

The previous fix for Rails 3.1 broke compatibility with non-ActiveRecord
projects. This fixes #90 and #94.
A base `DecentExposure::Error` class
Promote some delegations to higher strategy class
Extract strategy modules

This introduces a new pattern. Eventually, this will allow plugin
authors to more easily sprinkle behavior into their own strategies
without creating huge inheritance chains.
hide the setter (don't expose as a routable action)
Cleanup: hide actions next to their definitions
Blacklist the @_resources variable from views
Bump to version 2.3.0