Implement a few more types in the geometry module.

Also includes a FunctionNoise that uses Rust's closures.

Signed-off-by: Atheriel <atheriel@gmail.com>