Refactoring AccountDao#findByUsername

* Renamed AccountDao#findByUsername to AccountDao#findByUsernameOrEmail
and updated the DAO implementation to match the method mnemonics
Users can now ogin using their email address or username.
Fix HTTP POST parameters

* Use a java.util.List of NameValuePair objects to specifiy
the API request parameters

* UTF-8 encoding of the parameters before submitting them to the API
Use the username as the principal

* Using the user's display name as the principal is
inappropriate; the principal ought to be unique for each user

* Populate the return authentication object with additional information
about the authentication request