Add key-path variable support

add -numberByEvaluatingStringAgainstObject: and -numberByEvaluatingStringAgainstObject:error: methods

these methods take an object which conforms to key-value coding, and parses the string's variables for key-paths. the key-path variables are then replaced with the corresponding values form the given object.

for example, if an object has an NSNumber property, aValue, equal to `@5`, the follow would occur:

    NSNumber *x = [@"$aValue" numberByEvaluatingStringAgainstObject: theObject];
    // x == @5