Kernel functions for creating kernel based weights with `st_kernel_weights()`

## Details

Supported kernels are below.

Formulas come from Anselin & Morrison's notes.

`uniform`

: K(z) = 1/2 for |z|<1`triangular`

: K(z) = (1-|z|) for |z| < 1`epanechnikov`

: K(z) = (3/4)(1-z^2) for |z| < 1`quartic`

: K(z) = (15/16)*(1-(z/threshold)^2^)2 for |z| < 1`gaussian`

: K(z) = (2pi)^{1/2} * exp(-z^2/2)