Convert get_metadata_fields() into attribute

For PageType. There's no point in it being a method. In fact, it should
eventually be removed completely, since it's redundant (see the
editable_fields attribute), but for some reason I'm using professor_id
instead of professor in editable_fields. Hopefully fixing that can be
the next commit.

EDIT: Never mind. Can't be fixed at the moment. Will leave for another
day.
Move get_kwargs() to PageType base class

Cleans up the code a bit and also fixes #218.

Should probably have tests though.
Delete redundant code in find_errors on PageType

like why
Add date validation for LectureNote page type
Add tests for page types

kind of shitty tbh, will work on them later maybe
Test validation of initial data dict for PageType

(The one used for generating the slug and title)

Like, make sure it doesn't trigger any errors.