DebugInfo: Introduce the notion of "form classes"

Summary:
Use DWARF4 table of form classes to fetch attributes from DIE
in a more consistent way. This shouldn't change the functionality and
serves as a refactoring for upcoming change: DW_AT_high_pc has different
semantics depending on its form class.

Reviewers: dblaikie, echristo

Reviewed By: echristo

CC: echristo, llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1961
Revert "Support cross linking to arm on ubuntu."

This reverts commit r193528 (and fixes).

It broke Chandler's setup.
DWARF parser: since DWARF4, DW_AT_high_pc may be a constant representing function size
[PECOFF] Set section name for BSS atoms.

This change has no effect now, but will be needed to emit BSS atoms
to .bss section.
Fix comment.
Quote potential shell expansions found in tests
lit: add missing substitutions for recently added tools

llvm-mcmarkup, obj2yaml and yaml2obj were missing from the substitutions list,
causing the test suite to fail in a sandboxed environment.
DWARF parser: Use ArrayRef to represent form sizes and simplify DWARFDIE::extractFast() interface. No functionality change.
Switch %clang -cc1 tests to %clang_cc1
Renaming MCJIT .ir files to .ll and moving them to Inputs
Merge DWARFDIE::extractFast and DWARFDIE::extract into one function.

Complicated CU-DIE-specific logic in the latter was never used,
and it makes sense to have safety checks for broken dwarf in the former.