Spelling fixes

No functional change
Validate pointer alignment when bitcasting

When bitcasting an integer to a pointer, verify that the casted value is
correctly aligned to the destination type. It is undefined behaviour to
load a primitive from an un-aligned pointer.
Move the alignment query function to common.cpp

Use the existing size query function when validating the pointer
alignments.
Use the device to report pointer alignment errors

Instead of writing to cerr directly
Use constant char pointers instead of strings

This avoids constructing string objects (which make heap allocations) at
runtime.
Allow querying the WorkItems device

This allows for builtins to report errors
Add address alignment validation to atomics

The atomic builtins now issue warnings if the address provided is not
4-byte aligned.
Add pointer alignment verification to loads and stores

Verify proper alignment with the data being loaded or stored
Return alignment of packed structures as 1

Remove dead function
Merge pull request #63 from silverclaw/master

Pointer alignement verification