Construct endpoint path URLs in a consistent and enforceable way

Early PR for #30: more to come.

TODO:

- [x] Implement new path generation logic for a single endpoint
- [x] Move the path generation and validation logic up into WPRequest
- [ ] Identify whether there's a cleaner way to do validation
- [x] Improve tests and documentation
- [x] Deprecate the _action/_actionId properties in favor of _path.values
- [x] Implement the new behavior in all endpoints