Extension info

This feature branch implements a set of controllers and objects for storing and presenting extension information. A sample is included in the TTCatalog app.

The tech behind this is unusual. Extensions can register themselves with the Three20 extension loader by implementing the following methods in a TTExtensionLoader category:

    - (BOOL)loadExtensionNamed<extensionName>;
    - (TTExtensionInfo*)extensionInfoNamed<extensionName>;

See examples within each of the three included extensions.

Extensions are then loaded using the following method:

    [TTExtensionLoader loadAllExtensions];

`loadAllExtensions` uses Objective-C runtime information to find all methods in the TTExtensionLoader class with the above prefixes and then loads the extensions accordingly.

And we can access the extension information within the app by setting up the navigation URLs like so:

    [TTExtensionsController registerUrlPathsWithNavigator: navigator
                                                     prefix: @"tt://"];

And navigating to the primary extension view with the following URL path:

    [TTExtensionsController urlPathForExtensionsControllerWithPrefix:@"tt://"]

In the future I'd like to see extensions such as the XML and JSON extensions be able to automatically register themselves with the network response system as valid response objects. For example, if I make a call to a web API and it returns back that the response is `application/json`, then the Network module can look up `application/json` in a pre-registered response map which extJSON would have registered itself into and load the response accordingly.