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?