Merge pull request #1 from gauthierm/master

Move README to markdown format. Add more info.
Remove ChangeLog from package.xml
Update class docs for test cases.
Initial pinentry support.
More work on the pinentry. Clean up CLI, use Console_CommandLine. Clean up logging and error handling. Clean up whitespace.
Move byte functions into their own static class. Use in Engine and PinEntry.
Add wordwrap implementation to pinentry. Use mbstring directly as UTF-8 is defined in the protocol.
Start and stop gpg-agent if using GnuPG > 2.x. Specify our custom pinentry program and pass GPG_AGENT_INFO to environment of gpg process.
Add replacements for Engine, PinEntry and pinentry-cli to PEAR build script. Add requirement on mbstring.
Fix two missed _byteSubstrings that had different case.
Fix variable name.
USe --keep-display so we don't pass a --display option to the pinentry program.
Make pinentry set the include path explicitly when called from a git repo. The gpg-agent sets the cwd to / when the pinentry is run.
Detect shell properly for debug output.
With mbstring required, no need to check function overloading setting. Just always use mbstring.
Ignore saved options when starting gpg-agent. Put agent command at end of options list.
Initialize pins from PINENTRY_USER_DATA. Remember what PIN is being requested and search for it in the user data when GETPIN is called.
Set PINENTRY_USER_DATA based on the decrypt or sign keys when decrypting or signing. Clear the variable when the GPG subprocess ends in the engine.
Improve portability of pinentry program.
Update dates.