first pass at reflection to DRY up param parsing

WIP

Clean up parameter parsing to make it much DRYer (will help with adding new resources, parameters, etc in the future).

- [x] Add parsing logic
- [x] Use this for one resource
- [x] Figure out booleans (specifically booleans with default of `false`)
- [ ] Handle valid `0` values.

Thoughts on the direction so far?

/cc @cosn @kyleconroy