Implemented test cases, plus some small fixes.

This implements as many unit tests (based off of the standard unittest module) as I could come up with in the cleanup branch, hopefully solving Issue #26 and opening the door for the cleanup branch to get all the new changes and be used for development going forward.  Note that in some cases I needed to revert back to master functionality because the cleanup branch was broken or different and, when in doubt, I went with the master branch (the new login_url implementation was broken, UserMixin did not implement `__eq__`, etc.). I also changed the logic of the current_user when in a test_request object from being None to being an anonymous user, since I felt that was more in line with what flask-login is going for (but feel free to change that and all of the tests relying on that notion if you wish...)