Call SecCopyErrorMessageString to provide a description for NSError objects

This patch makes the NSError objects returned much easier to use by giving them a readable description. It preserves the error domain and code so it should remain compatible with existing code bases.

errSecSuccess is the "0" status defined in SecBase.h