added support for custom extractDefines and extractRequires as functions;
refactored some methods to break down the steps better;
Merge pull request #11 from jonsquared/feature/extractFunctionOptions

added support for custom extractDefines and extractRequires as functions...