PDT Post view methods and tests

Also fixes an issue in the model, that was accessing the post raw body that fails if we have read from post vars before that call. 
If we already started reading from the HTTP body, then this will be incorrect - it will return what is *left*, which isn't what we want, we need the whole thing. The most likely scenario is someone accessed POST, in which case `read()` will return an empty string, I think.

If we didn't start reading from the datastream, this isn't necessary.

So this seems incorrect either way.