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
- [ ] Get feedback!
- [ ] Make changes, apply to rest of resources
- [ ] Figure out booleans (specifically booleans with default of `false`)
- [ ] DRY metadata
- [ ] DRY non-resource params (`total_count`, etc).

Thoughts on the direction so far?

/cc @cosn @kyleconroy 
how would this sort of condition be met? IOW, Quantity and TrialEnd are only valid if there's a plan present.