Fix test failing because you need to login first.

- Comments from Fulvio: "This will fail, because add_entry now expects you to be logged
in before you post. Write a login method, and then call that before you
do any add_entries tests. You should also add another test that
explicitly tries to post without being logged in, or after being logged
out, and expect a 401."
Fix login link in Login page

- Comments from Fulvio: "Having this here has a downside: it will show
  the "log in" link even on the /login page, which end up just linking
to itself. So I would put this only on the show_entries.html template."
Add testcase for invalid add_entry

Fulvio comments:

If you try stepping through this with a debugger, you'll see that
sqlite3.Error is not the only exception that is raised when bad data is
posted with the form. For example, if you post a "text" field that is
set to None, you get back a BadRequestKeyError, which is a subclass of
KeyError. That's because in schema.sql you have "text string not null".
So you can use this to build an additional test case that posts a None
field, and then instead of checking actual.data, you check
actual.status_code. But you also want to add an "except KeyError" in
your add_entry().