updated some if let ... { } else { } syntax to be more compact and readable using the ?? operator.
Updated setObject function. This is meant to save NSCoding compliant objects, so enforced that these must be NSObjects and added validation to check that the object is NSCoding compliant.
Added unit test for failure case.
Updated objectForKey for return NSObject?
Found a better way to enforce that objects saved to keychain implement NSCoding: just declare that as the type required and returned. Now only objects that implement NSCoding can be used, else a compile time error will be generated.
Merge branch 'release/1.0.1'