Added validation to create user form

I have added server side validation to check for any invalid
submissions such as empty required fields. For the interface, I have
also added physical error messages that will start showing up after
the first submit. The messages will disappear when the field's
requirement is met.

The server side validation uses validictory, "a general purpose
Python data validator". I had to add an custom validator (eg. if
statement) for matching passwords though.

An improvement that can be added is the uniqueness of the username.
Added validation for course and login views

I have added flash error (on the top) for login, user, and course
general error such as duplicate usernames.