CRAS: Make shared structures architecture-independent.

This allows x86 clients to connect to x86-64 server, which is
important for crouton.

Get rid of size_t, long, and timespec, whose size depend on the
architecture. We also pack all structures to make sure alignment
is the same across platforms.

We assume that sizeof(enum) = sizeof(int) = 4, which is true on
x86/x86-64/arm with GCC (using default compilation flags).

Volume is now an uint32_t (was size_t), capture gain is now an
int32_t (was long): no difference on x86/arm, and 32-bit is more
than enough range on x86-64. Frame rate, number of channels, and
shm offsets are also converted from size_t to uint32_t.

We replace uses of timespec by a fixed-size cras_timespec, where
both fields are 32-bit signed integers (as on x86/arm, x86-64
uses 64-bit ints). All we care about in CRAS is differences
between 2 cras_timespec, so 64-bit fields are not required (even
after year 2038).

BUG=chromium:309961
TEST=Audio input/output still work.
CRAS test: Verify sizes of shared structures.

This makes sure that shared structures have a fixed size across
architectures.

This test also acts as a reminder that
CRAS_SERVER_STATE_VERSION and CRAS_PROTO_VER should be bumped
whenever shared structures and message format changes.

TEST=Run make check on all supported architectures.