Allow invokable objects to be shared, extended, and protected.
merged branch whatthejeff/invokables (PR #65)

This PR was merged into the master branch.

Discussion
----------

Alternative to PR #61

This PR is a continuation of a419262.  It allows invokable objects to be shared, extended, and protected.  The unit tests have been updated (where applicable) to use data providers to ensure that invokable objects work in all situations where Closures work.

Unlike #61, this PR contains no major refactoring.

Commits
-------

294533b Allow invokable objects to be shared, extended, and protected.