Change forms API to allow direct inheritance

The way forms overriding is set up now is unintuitive and unnecessarily limiting. It doesn't allow simple inheritance from default form classes and only allows to override one method, using incompatible call pattern for save().

In this request I propose a simple way to clean this up. Forms can be inherited as a simple classes (which they really are) and every method can now use custom logic. Application settings seem like a good place to do settings validation, it also works and returns exceptions at the same time it does now (ie. when signup form is actually called). When user wants to mess with user object, save_user method on (social)account adapter can be overridden.