Implementing the singleton the right way

`-defaultKeychain` was creating a new object every time, because the variable wasn't static.
It was also not thread safe, so I just used dispatch_once.
Merge pull request #3 from JaviSoto/patch-1

Implementing the singleton the right way
Updated to 1.3.1
Enforcing that the object is of a type that can be encoded and throwing an exception otherwise instead of failing silently.
Throwing an exception only if the object can't be serialized.
Merge pull request #4 from JaviSoto/master

Throwing an exception if the object is not of a supported type, instead of failing silently.
Updated to version 1.3.2
Merge pull request #1 from nicklockwood/master

同步原作者更新