Partial implementation of NSInvocation copying function.

NSInvocation's actual copy method (or rather, it's copyWithZone:
method) only seems to copy the method signature to the new object;
the copy has none of the method arguments of the original. To avoid
disrupting code that depends on the standard behaviour, I have
chosen not to implement this as a category on the NSInvocation class,
but it would be easy to turn it into one, if desired.

The implementation is not yet complete; the next step is to actually
copy the arguments, however, that requires a way to determine how
large each argument is. The original class provides a method for
getting the size of the return value, but not of the input
arguments, so I need to add one.
Completed implementation of NSInvocation copier. Also includes a useful addition to NSMethodSignature.
Don't attempt to copy return value of NSInvocation for methods with void return types.

I believe that this was the cause of crashes I was seeing, on the
call to *getReturnValue:*, surprisingly. The docs say the behaviour
of getReturnValue: before calling setReturnValue: is undefined, but
it seems to work fine (and there is no way for the copying routine
to tell if the return value has been set in the original or not).
If we do run into problems, we'll have to simply drop copying return
values, which is probably fine as I don't foresee an actual use for
it in this application. I just did it for completeness. But the
crashes seem only to happen with void-return methods, which is
easy to work around.
First step in adding a spy-style matcher for Kiwi. Can perform simple tests by message name.
Added method to NSArray to make "contains" tests more convenient.
Added check that subject of "haveReceived" matcher is a spy; cleaned up some copy/paste cruft.
Matcher's failure messages and description now include selector to match.
Test spy and "haveReceived" matcher can now also match method arguments.
Moved private KWInequalityType declaration into class .m file.

Because this is a public header, it will be exported to clients of
the library. But the NS_ENUM macro used to declare the
KWInequalityType is only available in the iOS6 and MacOS 10.8 SDK,
while the library would otherwise work fine at least back to the
iOS5 and MacOS 10.6 SDKs (and possibly earlier). And because it is
only used within the class, it is should not be leaked to the
public interface. Moving it to the top of the .m file solves both
issues.
Added "have received" matcher to Kiwi.h; fixed header copying for framework build.
Add KWSpy.h to list of imports in main Kiwi.h header.
Removed Info.plist file copy from build script.

The source file was removed from the project, but the build script
still had a step to copy it to the output directory. The change just
removes the offending "cp" line from the script.
Initial tests for test spy class.
Added method to KWSpy to clear recorded invocations.

This is needed when the test setup code interacts with the spy and
the test wants to ignore those interactions in its verifications.
Merge branch 'master' into feature-test-spy-matcher

- Report failures for tested nil subjects properly
- Fix some warnings instead of suppressing them
- Podspec wasn't picking up Classes folder correctly, add myself as author
- Fix warnings in the main target
- Fix warnings in the tests
- corrected compiler flags to enable ARC build for OS X lib
Added check that # args passed to haveReceived:withArguments: matches expected message.

Without this check, an exception from an invalid array index is
thrown, which is confusing when you're trying to figure out why the
test failed.
Merged 2.2.1 release into test-spy feature branch.
Added "haveReceived" matcher variations that verify some number of invocations.

Format follows the "receive" mock expectation matchers.
Added support for verifying the order of messages sent to a test spy.
Converted KWHaveReceivedInOrderMatcher logic tests to a parameterized test; found and fixed one logic bug.

The move to parameterized form was done to reduce duplication and
(hopefully) make the order-checking logic tests clearer. This turned
out to be a more complex that the parameterized test for the
matcher's string functions, but could be a basis for extracting a
pattern for future use (to simplify the final test classes).

The matcher logic bug was discovered after drawing out a logic table
in an attempt to see if the after-first matcher was superfluous. In
fact, it was discovered that, to cover all cases, we actually need
an additional before-last matcher, so in preparation (and for
clarity), the existing "before" matcher was renamed to "beforeFirst".