Improve ERB dependency detection

Following the discussion started on #13116, I thought it might be worth giving a shot at some of the issues we have identified.

The current implementation can't handle some special cases of oddly-formatted Ruby. Now we are able to detect them:

* Multi-line arguments on the `render` call
* Strings containing quotes, e.g. `"something's wrong"`
* Multiple kinds of identifiers - instance variables, class variables and globals
* Method chains as arguments for the `render` call
* "Glued" identifiers, e.g. `render@things`, `render:partial => 'partial'`, etc.

Also, this fix reduces the rate of "false positives" which showed up when we had calls/access to identifiers containing `render`, like `surrender` and `rendering`.

Related: #13074.

__Update:__

There is still one edge case for false positives which will be virtually impossible to avoid whithout actually parsing the template: when we have `render` inside a string, as in:

```erb
<%= content_tag :p, 'Then we render something nice.' %>
<%# "somethings/something" %>
```

For obvious reasons :bomb:. But I guess that will not be such an issue. What we have got so far is probably about as far as we can go with a human-readable regex.