More flexible packing/parsing

I am working on a project where the messages do not always contain a simple NSDictionary or NSArray, so I expanded the library a bit:

- Added GeneralPurposeParser for parsing a message piece-by-piece, instead of reading a single object from the message.
- Added GeneralPurposePacker for packing a message piece-by-piece, instead of writing a single NSDictionary or NSArray into the NSData.
- Added support for packing and parsing NSData as 'raw' objects in msgpack.
- Updated msgpack-c sources to the 0.5.8 release.
- Added podspec for easy cocoapodding.
- Added Apache license to please the pod spec lint.

Example of parsing a message with the new GeneralPurposeParser:
```objective-c
// pass the full message to the parser
GeneralPurposeParser *parser = [[GeneralPurposeParser alloc] initWithData:packedMessage];
// read the contents piece-by-piece
NSNumber *number = [[parser readNextNumber] integerValue];
NSString *string = [parser readNextString];
NSData *data = [parser readNextRaw];
```

Example of packing a message with the new GeneralPurposePacker:
```objective-c
// create a new packer
GeneralPurposePacker *packer = [[GeneralPurposePacker alloc] init];
// write the contents piece-by-piece into the packer
[packer writeString:string];
[packer writeNumber:number];
[packer writeData:data];
// create the packed message when done writing
NSData *packedMessage = [packer flush];
```