bind otherParams from source to modal

adds `otherParams` to add bindings from the source controller
to the modal component.

also adds in the ability to map withParams and otherParams properties
to alternatively named properties in the modal.

For example:

otherParams: ["foo", "bar", {
  baz: "qux"
}]

will map `foo` and `bar` directly, but map `baz` in the controller to
`qux` in the modal - the equivalent to the following template:

{{modal-dialog foo=foo bar=bar baz=qux}}