Support callback array syntax in CallbackPromise

As reported in #63, trying to use CallbackPromise with an array will fail because it is assumed that all callbacks are either strings or closures.

This change adds a small check around the relevant logic to skip the closure-specific logic when the provided callback is an array (of any kind, no further checking is done).
Removing a redundant return statement
Adding tests for more callback types
Removing Reflection from closure binding
Removing extraneous comments
Lowercasing function first letter
Clarifying name of bind method
Inlining closure binding logic
Merge pull request #66 from ciaranmcnulty/callbackpromise-array-callbacks

Support callback array syntax in CallbackPromise
fixed ObjectProphecy to suppress notices about object casting