#24650 Added bundle.execute_hook_method() and sgtk.get_hook_baseclass()

Adds a new method execute_hook_method() to bundle (e.g.
engine/app/framwork) objects. This allows app code to execute methods
beyond the standard execute() method that execute_hook() executes, and
allows you to structure hooks more like classes, where one hook can
contain a number of different methods. Furthermore, there is now a 
proxy method sgtk.get_hook_baseclass() which forms the foundation for
the upcoming hook inheritance support.

This squashed merge closes #58
[minor] updated display code to work with new hooks.
Added handling of folder creation race condition edge case in core hook.

On certain network file storages, it is possible to end up with a race
condition when multiple users or processes create folders at the same
time, resulting in a "file exists" error, despite the fact that the core
hook starts by checking that the file doesn't exist. This change
intelligently looks for this error and ignores it should it occur.

Thanks to Ben De Luca at Rushes for this patch (support ticket 2951).