more pinentry features

* handle canceling properly
* support informational dialogs that don't take input
* correct result returning
* display the text labels pinentry gives us