Add a warning API and use it for bad signatures

This is just the initial take.  I expect that the API will need
to change quite a bit before we accept it into libgit2.
Simplify warning API pending further discussion
Add warning base class and use that for warnings