nib2cib plus - another dramatic enhancement

## Motivation

There are a few key weaknesses in nib2cib and Cappuccino that are addressed with this release:

- The current theme engine provides little to no built in support for auxiliary themes that augment or override the default theme. Although themes can be loaded dynamically, they don't really work well in that way, and nib2cib does not correctly support them.

- Although nib2cib allows us to load userland frameworks, there is no support for custom NS classes to support the custom framework classes we use.

- When building an application with jake or using xcodecapp, nib2cib is run automatically with no command line options. This causes everything to break if we are using custom themes or frameworks and would normally use command line options to load them. We need a generalized solution for providing nib2cib options.

- The nib2cib engine is all plain Javascript, it really should be in Objective-J.

### Solution

**Auxiliary Theme Support**
https://github.com/280north/cappuccino/pull/1294 adds support on the Cappuccino side for auxiliary themes. To be truly useful, nib2cib has to support them as well. This release automatically reads the list of themes in the Info.list's CPAuxiliaryThemes. In addition, it makes sure that the correct theme class is archived for a view (in `encodeWithCoder:`), so that the correct theme will be loaded during unarchiving.

**Userland NS Classes**
Let's say I am working on a subclass of CPTextField called IOFormField. This class lives within a framework called Mocha. Obviously I will want to use IOFormFields in my cibs. I would like to have some reasonable defaults established for the view when using nib2cib, and perhaps override or ignore some IB settings that do not apply to my class.

Unfortunately there is currently no way to **dynamically** provide an NS class for my IOFormField that will be used by nib2cib the way NSTextField is used to initialize CPTextField. This release provides that facility.

To plug a new NS class into nib2cib, there are a few simple steps:

1. Indicate which classes will be used in IB by setting the **IBClasses** item in Info.plist:

         <key>IBClasses</key>
         <array>
              <string>IOFormField</string>
              <string>IOEmailField</string>
         </array>

2. For each class listed in **IBClasses**, a corresponding **NS_\<class\>.j** file must be created. This file is structured exactly like a Cappuccino NS class, with one exception:

        - (id)NS_initWithCoder:(CPCoder)aCoder
        {
            self = [super NS_initWithCoder:aCoder];

            if (self)
            {
                // Do my stuff here
            }

            return self;
        }

        @end

        @implementation NS_IOFormField : IOFormField

        + (Class)classForKeyedArchiver
        {
            return [IOFormField class];
        }

        - (id)initWithCoder:(CPCoder)aCoder
        {
            return [self NS_initWithCoder:aCoder];
        }

        @end

    The only difference between this file and a Cappuccino NS file is that `classForKeyedArchiver` is a class method instead of an instance method.

3. If necessary, the main class' `encodeWithCoder` can be enhanced to do extra work to support nib2cib.

**Stored Options**
There are currently four ways in which nib2cib can be run:

- Manually from the command line, single-shot.
- Manually from the command line, watch mode.
- Implicitly when building an app with jake.
- Implicitly when using xcodecapp.

When running implicitly, there is no way to specify command line options. This is a real problem if you need to load themes and/or frameworks to correctly convert a nib.

This release adds the ability to create stored options in the form of config files that are read by nib2cib. In addition to solving the implicit invocation problem, it also is a great convenience if the same nib is being converted many times over a period of days or weeks, since the command line options can be stored once and then `nib2cib` can be run alone without options.

Detailed information about the stored options is in the updated man file with this release.