Effector invoke API accepts form encoded data

A bunch of uncontroversial commits and 85a2b0c which adds FormMapProvider to marshal an InputStream to a `Map<String, Object>`. It's used in the effector API to let the invoke method accept form-encoded data.
Preference for `Map<String, ? extends Object>` so can be more easily called. Not particularly important here as main usage is REST api.

However, I think it's possible to use the EffectorApi with some library goodness to provide a client java api that turns its calls into REST request/response. Do we have that out of interest?