[arm] Add MC asm header object file test cases.
[arm] Add mc asm header assembly file test cases.
[arm] Extract functions to emit .fpu directive.

This commit extracts the code related to:

    .eabi_attribute 10, value    @ Tag_FP_arch
    .eabi_attribute 12, value    @ Tag_Advanced_SIMD_arch

into a new emitFPU() function.

This commit changes the test cases:

* Several .eabi_attribute directives in
  2010-09-29-mc-asm-header-test.ll are removed because the .fpu
  directive already cover the functionality.

* In the Cortex-A15 test case, the value for
  Tag_Advanced_SIMD_arch has be changed from 1 to 2,
  which is more precise.
[arm] Rename type name from AttributeItemType to AttributeItem.
[arm] Move ARMBuildAttrs to llvm namespace.
[arm] Compute the size of .ARM.attributes on demand.
[arm] Move AttrEmitter to ARMTargetStreamer.
[arm] Implement eabi_attribute, cpu, and fpu directives.

This commit adds the eabi_attribute, cpu, and fpu directives
support to the ARM assembly parser.  Besides, this commit
also moves switchVendor(), emitAttribute(),
emitTextAttribute(), emitFPU() to ARMTargetStreamer.

It has been verified that the output binaries of the changed
test case remain unchanged.
[arm] Allow multiple fpu directive.

If there are two .fpu directives, then the later one will
overwrite the former one.
[arm] Use enumeration for emitFPU().
[arm] Remove the default value for OverwriteExisting.
[arm] Change isFPOnlySP() to hasD16().
[arm] Remove FeatureHWDivARM from ProcR5.

Although cortex-r5 supports Thumb2 hardware division,
cortex-r5 does not support ARM divide extension.  This
commit removes FeatureHWDivARM from ProcR5 so that the
Tag_DIV_use will emit the value 0.

Changes to the test cases:
* The test cases with Tag_DIV_use are changed.  The value
  for Tag_DIV_use has been changed to 0.
* The test case, which checks the generated ARM sdiv and
  udiv instructions for cortex-r5, is changed to use soft-fp
  instead.