Replace initialized=true argument to Array constructors with Uninit

Expressions like Array<T>(size,false) are highly error prone, unreadable
to anyone not familiar with the code, and produce incredibly obscure
bugs when accidentally misused.  Now we have

  Array<T> a(n);

for initialized and

  Array<T> a(n,uninit);

for uninitialized.  This is obvious, easy to search for, and works at
compile time to allow constructing arrays where T has no default
constructor.