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 
Sort of torn on that ... feels like something easy we can do to make lives easier. The more interesting cases are going to be around tokens vs. card details. We actually had some feedback on that and making it easier does make a different. If that means we have to write a bit more code, I think that's worthwhile.