Pull in r200899 from upstream clang trunk:

  Allow transformation of VariableArray to ConstantArray.

  In the following code:

     struct A { static const int sz; };
     template<class T> void f() { T arr[A::sz]; }

  the array 'arr' is represented as a variable size array in the template.
  If 'A::sz' gets value below in the translation unit, the array in
  instantiation can turn into constant size array.

  This change fixes PR18633.

  Differential Revision: http://llvm-reviews.chandlerc.com/D2688

This fixes "Assertion failed: (T::isKind(*this)), function castAs"
errors, which can occur when building the security/quantis port.

Reported by:	ale
MFC after:	3 days
Add FDT matching code.
Add FDT attachment.
Add FDT attachment, plus minor code shuffle.
Add FDT attachment.
Add FDT attachment. Flag lost functionality with FDT_HACKS so we can
find it later.
Add FDT attachment.
Add TWI attachment for FDT. We're only matching the SAMG20 device for
now, others to follow.
FDT attachment...
Add FDT attachment.
If someone tries to boot a generic ATMEL kernel that has no board_init()
routine compiled in, print a friendly error message about it rather than
mysteriously hanging while trying to init 4GB of nonexistant ram.