core: add WITHOUT_PEDANTIC() and DECLARE_CONSTANT()
core: add WITHOUT_PEDANTIC() and DECLARE_CONSTANT()

`WITHOUT_PEDANTIC(expr)` disables `-Wpedantic` for `expr`, but switches
back to the previous diagnostic settings afterwards. This helps defining
macros that are not strictly ISO compliant without having to drop the
`-Wpedantic` flag entirely.

`DECLARE_CONSTANT(identifier, const_expr)` declares an anonymous `enum`
constant named `identifier` and assigns it the value `const_expr`. Here,
`const_expr` has to be a compile time constant, but is not needed to be
an integer constant expression. It basically is a tool to magically
convert a non-integer constant expression into a integer constant
expression.

OlegHahm/RIOT,miri64/RIOT,ant9000/RIOT,kYc0o/RIOT,kYc0o/RIOT,OlegHahm/RIOT,RIOT-OS/RIOT,kaspar030/RIOT,kaspar030/RIOT,miri64/RIOT,jasonatran/RIOT,jasonatran/RIOT,OlegHahm/RIOT,kaspar030/RIOT,kYc0o/RIOT,kaspar030/RIOT,kaspar030/RIOT,ant9000/RIOT,jasonatran/RIOT,RIOT-OS/RIOT,miri64/RIOT,jasonatran/RIOT,RIOT-OS/RIOT,RIOT-OS/RIOT,miri64/RIOT,miri64/RIOT,kYc0o/RIOT,jasonatran/RIOT,ant9000/RIOT,RIOT-OS/RIOT,ant9000/RIOT,OlegHahm/RIOT,kYc0o/RIOT,OlegHahm/RIOT,ant9000/RIOT