Better error for missing REST params

Fixes #214 to give an error like:

```
The following required parameters are missing for Operation:DeletePipeline: id
```

This is now more in-line with how non-REST services do things. Unfortunately due to how headers are handled it wasn't easy to just re-use `Operation().build_params`, so instead we keep the existing logic and on `KeyError` raise the `MissingParametersError` ourselves. Thoughts @jamesls?

Also: no longer append `?` when there is no query string, and rename a test case that was clobbering another previously defined test.