Adding remote-method

This provides functionality similar to rails version of `link_to` for methods other than `GET`, allowing you to query methods on different endpoints, and partial page replacing different refresh keys depending on the response status

It requires your node to be marked up with:
- `remote-method`: the HTTP method you wish to call on your endpoint
- `href`: the URL of the endpoint you wish to hit
- `refresh-on-success`: (optional, but you'll almost always want it) which refresh keys will get refreshed, using the body of the response.  This is space-delimited
- `refresh-on-error`: (optional) see above, but using body of XHR that has failed
- `remote-once`: (optional) Only do this once.  Removes `remote-method` and `remote-once` from element after consumption
- `full-refresh`: TODO: Find out what this is used for

It emits a few events:
- `turbograft:remote:start`: before XHR is sent
- `turbograft:remote:always`: always fires when XHR is done
- `turbograft:remote:success`: always fires when XHR was successful
- `turbograft:remote:fail`: always fires when XHR failed
- `turbograft:remote:fail:unhandled`: fires after the above event, but when we didn't partially replace anything with `refresh-on-error` (because there was no `refresh-on-error` supplied)

Each event also is sent with a copy of the `xhr` in case you need to look at anything in there

This works on any node, because, why not?

Usage
===
A typical rails-y usage
---
`<a href="<%= delete_foo_path %>" remote-method="DELETE" refresh-on-success="foo-container">Delete this foo</a>`

When clicked, submits a `DELETE` to `delete_foo_path`, and uses the contents of the response to replace any sections with refresh key `foo-container`
TIL `node.classList.contains(search)` thanks :+1: