add checking and error handling for encrypted keys and pass_phrases

this fixes https://github.com/opscode/cheffish/issues/9

This is my first attempt at fixing this and want to start a discussion to make sure i'm going in the right direction. Any feedback is appreciated!
There are cases where we don't want to raise an error here--specifically, when regenerate_if_different is true, the resource should regenerate the key if it can't read the format (since it's clearly different).  I have a patch for this part of the issue going in and will link it momentarily, but please don't let that stop you from the excellent error message goodness you have going on here!