build: add support for Tru64 (OSF/1)

Signed-off-by: Mans Rullgard <mans@mansr.com>
pixdesc: add functions for accessing pixel format descriptors.

Make av_pix_fmt_descriptors table static on next major bump.

Making the table public is dangerous, since the caller has no way to
know how large it actually is. It also prevents adding new fields to
AVPixFmtDescriptor without a major bump.
tools: do not use av_pix_fmt_descriptors directly.
sws: do not use av_pix_fmt_descriptors directly.
mpegvideo: fix indentation
lavc: do not use av_pix_fmt_descriptors directly.
lavfi: do not use av_pix_fmt_descriptors directly.
lavu,lavd: do not use av_pix_fmt_descriptors directly.
avutil: Duplicate ff_log2_tab instead of sharing it across libs

The table is so small that the space gain is not worth the
performance overhead of cross-library access.
Revert "configure: x86: improve ebp availability check"

This makes cabac-test work on 32-bit mingw, to ease testing/comparison
between MSVC and mingw.

This reverts commit 692dd8ed2617f390ff53b1152a21170e886be726.
Move av_reverse table to libavcodec; it is only used there.
Shared library support for MSVC build.

This patch adds support for .dll shared library generation using MSVC's
native build tools.

This requires the makedef perl script by Derek, which probably will
go into the c99-to-c89 repo.

To properly load non-function symbols from DLL files, the declarations
need to have the attribute __declspec(dllimport) when building the
calling code. (On mingw, the linker can fix this up automatically,
which is why it has not been an issue so far. For code built with
MSVC linking to DLLs built by mingw, one has had to manually add
this into the headers, if using the data symbols.)

The __declspec(dllimport) attribute is added via a macro. Since
it has to be present when building code that refer to these symbols,
but not be present while building the library that exports the symbols,
the makefile is modified to add a define like COMPILING_avcodec while
building each library. This is used in the definition of the
AV<lib>_SYMBOL macro - on non-MSVC compilers, it is empty. On MSVC, it
is __declspec(dllimport) for declarations in other libraries than the
object file currently compiled.

This also implies that code that is built to link to a certain
library as a DLL can't link to the same library as a static library.
Therefore, we only allow building either static or shared but not
both at the same time. (Internally, during the build, however, a static
library is created for collecting the built objects, for linking the
test tools to non-exported functions in the library.)

Also, linking to DLLs is slightly different from linking to shared
libraries on other platforms. DLLs use a thing called import
libraries, which is basically a stub library allowing the linker
know which symbols exist in the DLL and what name the DLL will
have at runtime.

In mingw/gcc, the import library is usually named libfoo.dll.a,
which goes next to a static library named libfoo.a. This allows gcc
to pick the dynamic one, if available, from the normal -lfoo switches,
just as it does for libfoo.a vs libfoo.so on unix. On MSVC however,
you need to literally specify the name of the import library (or static
library).