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. The only assumption we make is
sizeof(enum) = sizeof(int) = 4, which is true on x86/x86-64/arm
with GCC (using default compilation flags). We also pack all
structures to make sure alignment is the same across platforms.

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.

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

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.