Document some bugs in package manipulation.
Improve DOCUMENTATION tests

* Use new helper function ASSERT-DOCUMENTATION

* Consistently use WITH-TEST

* Group all DOCUMENTATION tests in one section of the file
DOCUMENTATION works on instances of FUNCALLABLE-STANDARD-CLASS

Previously, methods on DOCUMENTATION and (SETF DOCUMENTATION) were
specialized on STANDARD-CLASS, excluding FUNCALLABLE-STANDARD-CLASS.

While this was in line with the method signatures listed in the CLHS
entry for DOCUMENTATION, that entry also states (for DOC-TYPE equal to
TYPE):

  If x is a symbol, returns the documentation string of the class whose
  name is the symbol x [...]

indicating that (documentation CLASS-NAME 'type) should work for all
kinds of classes.

Specializing the four methods on CLASS instead STANDARD-CLASS is
1) sufficient to enable operation on FUNCALLABLE-STANDARD-CLASS
2) safe since the accessed %DOCUMENTATION slot is located in CLASS
Extract the state machine of WITH-PACKAGE-ITERATOR into a function.

Also, by avoiding POSITION-IF and FIND-SYMBOL, not to mention the
useless (THE HASH-VECTOR) everywhere, it's significantly faster.
Add WITH-TEST, improve test for DOCUMENTATION on (SETF ...)
Test DOCUMENTATION for DOC-TYPEs PACKAGE, VARIABLE
Apply constraint-propagate-if info even if the then branch has none

This wasn't an issue when the else branch always received the negation
of the then branch, but constraint-propagate-if can adjoin arbitrary
constraints.
Fix instance-length discrepancy in genesis again.

MAKE-COLD-LAYOUT lacked the math to ensure that an instance header
specifies an odd number of words following. As such it differed
from what the target runtime does.
Fix failure to detect inaccessible symbol in EXPORT
Omission from prior change- export SB-INT:PACKAGE-ITERATOR-STEP