Initial import of Timothy Terriberry's daala-exp code.

This is the code from http://people.xiph.org/~tterribe/tmp/daala-exp/
downloaded 2010 October 13.
Add an AUTHORS file for identifying copyright holders.
Add a LICENSE file stating that the project is GPLv2 or later,
per Tim's described intention on IRC.
Add a GNU GPLv2+ copyright header to each source file.

Based on a patch by Matt Lee.
Add a heading to the AUTHORS file.
Update the copyright header with appropriate date ranges.

We want to show the span of development for the various files,
so we use a range of years in the copyright statement. Since
that makes the line too long, we shorten the copyright holder
to just 'Daala project contributors' which is currently defined
to be juse 'Timothy B. Terriberry' in the file AUTHORS.
Add a 'check' target to the makefile.

This is just a synonym for 'all' at the moment. Eventually it should
run some self-tests, but it's nice to not get an unknown target error
in the meantime.
Clean objs with ${RM} instead of -rm, to suppress warnings.

On GNU make ${RM} expands to 'rm -f' which doesn't complain
about being asked to remove non-existent files. 'make clean'
still creates the .d files before cleaning though.
Detect host machine type and set CFLAGS accordingly.

The makefile was defaulting to building with assembly for x86,
meaning it wouldn't build out of the box on an arm host. This
patch tries to be clever, and enables different flags based
on the output of `uname -m`. There isn't currently any arm
assembly, but we define OD_ARMASM as an example of how to add
other architectures.
Define __GNUC_PREREQ if the compiler doesn't.

This fixes the build on MacOS.
Add -lm for encoder_example.c's rint() call.

Needed on Fedora 15 x86_64.
Use 'movslq' instead of 'movsxl'.

Clang has refused to implement movsxl on the grounds that the
size specifiers are ambiguous. Use movsql instead which both
gas and clang accept.
Fix MacOS: Copy the cpuid macro from libtheora.

The cpuid macro tries to preserve ebx (used for -fPIC) by
exchanging it with whatever location the caller's 'ebx'
variable is using on either side of the cpuid operation.

However, this has a bug on x86_64: round-tripping through
the 32-bit ebx will clear the upper 32 bits of any 64 bit
value being held in that location. In particular, the
optimizer in llvm-gcc and clang 3 from Apple XCode 4.2.1
tries to reuse a copy of the _state pointer which was
held in that register at the time of the call, and
subsequently segfaults dereferencing the truncated
address (-O1 and higher).

Contrariwise, if we add the register to the clobber
list, gcc cannot satisfy the dependencies on x86_32.

Instead, we borrow the version of the cpuid macro
from the libtheora source, which uses a different
version on x86_32 and x86_64, the later without
the ebx specified explictly for the _ebx macro
argument.
Remove "cc" from the cpuid clobber list.

According to the Intel manual, neither cpuid nor xchg
set any flags, so we don't need to include the condition
codes in the clobber list.
Add reversible integer DCT approximation.

This is taken from experiments I did back in 2002/2003.
It is being added here merely for reference.
Correct some macro names and array sizes in dct.c.
Add OD_FLIPSIGNI and OD_COPYSIGNI macros.

These can be used to branchlessly copy signs between integers.
Add OD_DIV_ROUND macro.

This does branchless integer division with rounding, so you don't
 have to think about it.
Initial version of the PVQ quantizer

Includes some documentation (in LyX format) describing the math behind.
Add a dummy 'check' target to the unix makefile.

This doesn't do anything, just prevents an error return if a
script calls 'make check' check.