Fix compiler warnings when --enable-assertions=no.
Provide alignment macros and use them.

The syntax for declaring aligned variables differs by platform.
Furthermore, the existing use of aligned variableson the stack is
 unreliable (on x86-32 gcc can and will ignore alignment requests
 larger than 8 bytes).
This provides macros for requesting alignment in declarations and
 moves the stack declarations in the generic platform-independent
 code into structures where we can actually guarantee alignment.
Use OD_LOG2 macro instead of log2().
Add casts to avoid precision loss warnings under MSVC.

Signed-off-by: Nathan E. Egge <negge@dgql.org>