Improve ARRAY-RANK transform.

* Don't crash on bad types.
* Delay the transform if the type isn't yet known.

Fixes lp#1252108.
remove misplaced AVER

(defstruct nil x) is clearly never going to work, but doesn't
deserve the scary "probably a bug in SBCL itself" message
more targetted warnings for probable DEFSTRUCT syntax errors

Some keyword defstruct slot names are more deserving of warnings
than others.  In particular, slot names matching defstruct
options (from name-and-options) are highly suspicious, and likely
never to be intended, as there is essentially always a different
way of writing what is meant.

The exception is when the CONC-NAME defstruct option is null,
which makes defstruct slots effectively have symbolic identity
rather than the normal stringish nature; don't emit full
warnings under those circumstances, even though doing
  (defstruct (foo :conc-name) (:constructor))
is a pretty spectacularly bad idea.
fix manual build

just the wrong include for assert-version->=
Fix deadlocks in GC on Windows.

When multiple threads cons and end up in the GC, they could deadlock
trying to send messages using safepoints and trying to acquire the
*already-in-gc* lock.

Also happens to stop gc.impure.lisp / BUG-936304 test from failing on linux-x86.

Thanks to Paul Khuong for the patch.
Fix the cheneygc build

Cheneygc takes a generation argument, but ignores it.