Add functions defined in the script to the database

This allows the functions to be highlighted as user functions, have
a calltip and appear on autocomplete.

- The function definitions are temporarily added to a database only
  used for the script in which they were defined.

- This temporary database is updated on the following cases:
    - automatically when opening the script, reloading it, or
      creating it from another tab
    - by clicking the new option Edit -> AviSynth function -> Parse
      script for function definitions

- A quick way of adding a definition to the general, persistent
  database is to put the cursor at the function name, right-click
  and select AviSynth function -> Show function definition, editing
  it if needed before accepting.

TODO: don't delete slider info when overriding a definition in the
main database with the info from the current script if the parameters
match.
[filter database] Valid values for int parameters can be specified now as a list

e.g. define the argument in the function info editor as:

  int "param" = 2 (2 / 4 / 8 / 16)

The slider editor uses min/max fields for integers unless an int list was
already introduced in the 'arguments' field for that parameter

Related to #25
Autocomplete parameter values

For the types that it makes sense:
- boolean
- integer or string, if there's defined a list of possible values

There's two ways to trigger it:
- with 'autocomplete parameter/filename', if the cursor is placed after
  an equal sign
- automatically after autocompleting a parameter name, with the same menu
  option

Limitations (due to autocomplete parameter name / parameter value / filename
all being currently assigned to the same menu entry):
- only for named optional arguments
- only at the start of the value

Closes #25