driver: organize debug messages a bit

Split up debug messages into multiple categories, which can be
enabled/disabled separately.
driver: reduce number of texture flushes

Only flush texture caches after a texture has been modified through a
transfer.
documentation updates
etnaviv: hook/fdr from driver

This commit makes it possible to compare command streams between the
Vivante blob and the Etnaviv driver.

For reverse engineering purposes command streams from the Vivante
blob driver can be intercepted and written to a FDR file. This is used
by the native/egl demos.

The same can now be done for libetnaviv: libetnaviv can be compiled
with ETNAVIV_HOOK=1, and when subsequently a program that uses libetnaviv
is run, the command stream will be written to the file defined by
environment variable ETNAVIV_FDR. If this environment variable is not
set, no command stream dump will be written.