Extend the way in which application code gets loaded into phantom-api.

1. Allow multiple functions -- defined in a single file or across
multiple files -- to be expressed in the phantom.run()
method. Examples:

    phantom.run( SimpleApiInterface );

    phantom.run( [UserInterface, ImageInterface, TextContentInterface] );

2. Now phantom-api handles whether the parameter or parameter list to
phantom.run() method contains functions or instantiated
objects. phantom-api automagically makes sure that by the time
phantom-api loads up the application modules, that each module is an
instantiated object. This removes the burden from the developer from
having to make these decisions. Moreover it allows simpler, cleaner
syntax.