Started simplification of ParamType.

Probably need to move it closer to the caller and make it not a fake class.
delete empty spec file
go to required/optional style (inspired by grape)

i think i'm gonna change styles again though
require default: param for optional fields
add in missing test coverage
backfill more missing tests