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`guassian`

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