[MSVC Compat] Implementation of __unaligned (MS extension) as a type qualifier

Description

[MSVC Compat] Implementation of __unaligned (MS extension) as a type qualifier

This patch implements unaligned as a type qualifier; before that, it was
modeled as an attribute. Proper mangling of
unaligned is implemented as well.
Some OpenCL code/tests are tangenially affected, as they relied on existing
number and sizes of type qualifiers.

Differential Revision: http://reviews.llvm.org/D18596

Details