Add 'function annotations' mode to support function dependencies

Here's the proposed implementation for issue #24.
@jergason Thanks for the feedback. I think injection should be opt-in because functions requiring injection are very probably under your control, whereas other functions likely include third-party code that's outside your reach (here's a [comment on that same topic](https://github.com/idottv/dependable/issues/24#issuecomment-59004573)). Forcing consumers to wrap/modify third-party functions (like typical Express middleware) looks less natural and elegant to me, but I may miss something.