Added broken tests for filter functions.
Improve the ability to find async functions.

This provides an optional filter function to aid with intelligently
locatating nested functions that are asynchronous.

Also better represents the original functions after wrapping.
Adds Istanbul code coverage.