Improvements to WS API

This commit solves two problems:

* It solves the WS execution permutation problem, where there needs to
  be every permutation of every method name and body type, by making the
  method and body settable on the request holder, and providing a no arg
  execute method that uses the set method/body.
* It allows you to stream the body as an enumerator, making it very
  simple to pass to a response.
Merge pull request #2742 from jroper/ws-request-permutations

Improvements to WS API
Added note about session.maxAge changing to migration guide

Also added a MigrationHelper plugin that detects errors caused by not
following the migration guide.