Parse::Matroska::Reader: get rid of `bigrat`

It seems that it was causing issues with certain perl setups (such as
the one on issue #549). It also turns out that it was not behaving correctly
(not all constants were being promoted to big nums as they should), so we
use explicit objects to derive the constants.

There were also precedence issues. I wonder if this even worked right to
begin with.

The 'double' path (8-byte floats) is untested, as I couldn't easily find
a file with such a field.

Closes #549.
Merge branch 'master' of git://github.com/mpv-player/mpv

* 'master' of git://github.com/mpv-player/mpv:
  win32: restore support for exe directory as config directory
  crosscompile-mingw: improve instructions for MXE
  sd_lavc: handle subtitles with no subtitle resolution set
  options: make --no-config block all auto-loaded configuration files
  lua: auto-load scripts from ~/.mpv/lua/
  lua: make register_event() not overwrite previous event handler
csputils: provide string descriptions of chroma locations
m_property: add a sub-property mechanism

This adds a mechanism for easier export of sub-properties. The following
commits will make use of it to export fine grained information about
certain things. The sub-property mechanism reduces the amount of code
needed to export a data value to 1 line.
command: export more video params as properties

This uses the previously added sub-property mechanism to export a bunch
of stuff. For example, "video-params/w" now contains the video width.
demux: expose stream_type_name() function
m_property: add a mechanism to organize a list of sub-properties

This automatically adds a "count" sub-property, and for each entry in
the range [0, count), a numbered sub-property to access the item.
command: expose track list as properties
command: export playlist as properties
command: export chapter list as properties
wayland/shm: remove unused define
DOCS/crosscompile-mingw: update

- Adds description of and uses $JOBS envvar in MXE instructions
- Adds MXE_TARGETS to command line instead of echoing it to settings.mk
- Prettify and sentence usage
DOCS/crosscompile-mingw: update disk space stats
DOCS/crosscompile-mingw: use settings.mk instead of make variables

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
lua: remove redundant inline documentation

Nobody will loom at this, and the proper documentation of these
functions is in lua.rst.
lua: allow giving fallback values in get_property() calls

E.g. ``mp.get_property("foo", "value")`` will return ``value`` if the
property can't be read.
keycodes: add const to a function argument
client API: add a client message event

This comes with a "script_message" input command, which sends these
messages. Used by the following commits.
input: don't let builtin bindings overwrite user bindings

This was already done, except when the bindings were in different input
sections. This commit fixed it. Useful for scripts, probably.
input: debug output for registered bindings