Allow custom validations for params

This change allows to define custom validations for params by returning an anonymous function instead of `[#rpc_params{}]` in `param_info/1` callback functions.

The anonymous function accepts two arguments:
* `'list' | 'proplist' | 'object'`.
* `hello_json:json_object() | hello_json:json_array()`.

Also, the change extends `#rpc_method.params_as` by adding `'object'` type.