Imported files and patches from GitHub user sushihangover's llvm-avr fork.

https://github.com/sushihangover/llvm-avr
Merged patches that I didn't see.
Updated AVR backend to master LLVM branch.
Split AVRTargetMachine and AVRSubtarget as they should be.
Modified AVR sources to use the new AVRTargetMachine and AVRSubtarget classes.
Added information about AVR backend to README.
Merge branch 'master' of https://github.com/llvm-mirror/llvm
Improved README
Improved the improved README
Merge branch 'master' of https://github.com/llvm-mirror/llvm
Merge branch 'master' of https://github.com/llvm-mirror/llvm
Merge branch 'master' of https://github.com/llvm-mirror/llvm
Merge branch 'master' of https://github.com/llvm-mirror/llvm
Merge branch 'master' into avr-support

Conflicts:
	include/llvm/IR/CallingConv.h
Fixed AVR hack to use updated normalizeSpillWeights function.

The function signature was changed in #8025a39d11.
Update AVR backend w.r.t API changes.

- TargetLowering constructor no longer wants a
TargetLoweringObjectFile*.
Instead, the getObjFileLowering() method has been added to
TargetMachine.

- setSupportJumpTables was removed.
Merge branch 'master' into avr-support

Conflicts:
	lib/Support/Triple.cpp
Updated CalcSpillWeights.cpp to LLVM master
Fixed typos in cmake/config-ix.cmake