Several changes.

- Remove the __toString() method from the interface (but keep it in the
  implementation).

- Add a represent() static method to CallableWrapper which can be used to get
  a human-readable representation of a callable.

- Inject the "callable" alias/typehint in all already defined namespaces
  during initialization. This is done so that typehints in already defined
  classes/functions work properly. This also makes the wrapper work correctly
  for functions (since there is no autoload mechanism for them).

  Note: if using functions/include*()/require*(), you may need to call
  CallWrapper::initialize() periodically so that the typehint gets defined in
  new namespaces correctly.