Improve general WTF-PAD code quality and maintainability

This is a master ticket for tasks that can be done after WTF-PAD gets merged, and maybe even after 0.4.0 gets released. They represent tasks that increase code quality and reduce tech debt.

Example:

  • Improve the probability distribution API. Instead of using nameless dist params, instead have the caller instantiate a struct with the right params for each distribution.

  • The above will also allow callers to specify a genpareto distribution with configurable mu parameter.