Make errors human readable

Change error messages from numeric codes to human readable strings. This makes debugging failures much easier.
Address CR comments and add a test
Fix error messages
Load crypto error strings
Merge pull request #59 from jroesch/better-errors

Make errors human readable