Standardize methods for validating positional arguments

It turns out that we can just implement the `get()` method for each type and get `get_check()` and `get_many()` for free.

3 for the price of 1 - that's a good deal!

Fixes #862