parser: Record skips (removed escape characters) in get_cmd_arg

Untested. Will be used for computing error offsets.
testhelpers/lua: Move some helpers code to vim.lua
lua: Check for new/modified globals in test.finish
*: Use function that saves parsed strings in a number of places
parser: Remove file name from CommandPosition, add it to ParserResult
translator/lua: Save original strings
*: Dump position information for error reporting

TODO? Check whether using strings is really faster then using table  literals.

Though there is another consideration: strings are for sure more compact and
translation result is already bloated enough to make it even more bloated by
using table literals.
parser: Rename parse_(one|mult|exprs?)

Renamings:

Old           | New
------------- | ----------------------
parse_one     | parse_one_expression
parse_mult    | parse_many_expressions
do_parse_expr | do_parse_expr_cmd
parse_expr    | parse_expr_cmd
parse_exprs   | parse_expr_seq_cmd
lua: Report a error when trying to call non-Funcref
lua/tests: Prepend Vim(command) to v:exception
lua/tests: Record throwpoint
translator/lua/tests: Support :throw command
translator/lua/tests: Improve :function definition support

Now user-defined functions support E118 and E119 error messages (not enough/too
many arguments).
testhelpers: Fix one memory leak
translator/lua: Record some function properties

Will be later used for :function without arguments, string() and so on.

Function properties are recorded in ephemeron table, so I do not have to care
about GC’ing them. Exact set of recorded options:

1. Function name.
2. Starting position (line number and column) of the first child of :function.
3. Position of the character just before `:endfunction` command.
4. Function arguments (stringified version).
5. `dict`, `abort` and `range` attributes.
6. `state.code` and `state.fname`.

Reasoning:

- 1 till 6 will be used for `:function Func` implementation. It looks like this:

           function {1}({4}){" abort" if 5.abort}{" range" if 5.range}{" dict" if 5.dict}
           {"        Last set from "..6.fname if verbose and 6.fname:sub(1, 1) ~= '<'}
        1  {6.code[2.line]:sub(2.column, -1)}
        …  {6.code[2.line + 1] till 6.code[3.line - 1]}
        N  {6.code[3.line]:sub(1, 3.column)}
           endfunction

  . More understandable example:

           function d.Abc(a, b, ...) range
                   Last set from ~/foo.vim
        1    echo a:a
        2    echo a:b
        3    return a:000
           endfunction
- 1. will be used in error messages (except for E118/E119 where exactly the same
  value is embedded by the translator without requiring to use value from
  ephemeron table).
- 5.dict will be used to raise E725 (calling dict function without
  a dictionary).
translator/lua: Fix dictionary functions support

Mostly untested. Should fix conditions under which bound functions are created:
previously d.Abc() did not create bound functions, but d['Abc'] always created
bound functions, even if it is was a simple subscripting.
lua: Raise E725 error when appropriate

This error is raised when trying to call dict function without a dictionary.
lua: Add call() function support

Untested as usual
tests: Test for some intentionally incompatible behavior
lua: Remove val_position values that are never assigned or used