Instead of apply use __call__

Instead of requiring a apply() function just use the
built-in one provided by objects or functions implementing
__call__. Also change how requires/provides may not be found
if functors are just passed in (since functors implement
__call__).
Update with adding a provides and requires decorator for standalone function usage.
Continue work with decorator usage.
Move decorators to new file and update to use better wraps()
Use update instead of overwrite.
Use a function to filter args and add comments.
Allow for turning off auto-extract and add a test.
Remove safe_attr
Merge pull request #21 from harlowja/use-call

Instead of apply() use __call__()