Replace syntax checker declarations with syntax checker definitions

Replace `flycheck-declare-checker` with `flycheck-define-checker`.

The new macro has the following advantages:

- Fully declarative, no code is evaluated for property values
- Less quoting required
- Compile-time verification of checker properties
- No regexp strings, instead patterns powered by `rx`
- No confusion about numbered groups, instead special `rx` symbols and sexps to match line, column, message and file-name
- Improved readability of complicated error patterns