Introduce "FlashErrorAuto" for "XxxErrorAuto" family and simplify the
error handling logic.
* Use ErrorUnwrapForHTML for web error messages
* Use ErrorUnwrapForUser for api error messages
* Make Flash message can take up to about 3000 bytes
Next step: completely refactor "ctx.ServerError"
---------
Co-authored-by: silverwind <me@silverwind.io>
Enable [`forcetypeassert`](https://github.com/gostaticanalysis/forcetypeassert)
linter to prevent unchecked type assertions. ~650 issues fixed, most
fixes were clean, some use `setting.PanicInDevOrTesting`.
The only behaviour changes are where code would previously send a 500 error
or panic, a 4xx error is now emitted.
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>