Add control and form at outer level of mice and mids.
control flows in.
form is an older change, already in mice, but it was not incorporated into the rest
mids and its manipulators.  I'll do that at the same time I work on the other things.

There is much more to do to make it work.

Also moved post a little later in various lists as it seems more logical to have
it after options that take effect earlier.
Add extra to mids object.
This is data that flows out from the inner level.  It is not passed in
because it is entirely a creation of the inner method.
Kill off use of padModel().  Handle extra list in inner loops.

check.data modified to do some categorical variable processing formerly
done by padModel().

check.form() created to check that formula and predictor matrix are consistent
(maybe I should just set the predictor matrix from it?) and to turn
prediction into a formula based one.

form becomes a list of formula object after check.form

TODO: alter passive imputation.  Since it is formula based, probably best
to fold it in to the other machinery.

Note that padModel is still invoked by some post-processing of mids;
that code still needs to get with the new program.

dummy imputation method should also be dead.  Left it with stop() to see if anything
triggers it.
rbind adapted to new scheme.  Would like to change semantics.
rbind is now aware of control, form, extra and prepared.
Removed pad.

Also factored some common code out of if/else.  This made it easier to add in
the new list elements.  The resulting return values will have list
elements in a different order than before.

Documentation is now more explicit about the (bizarre) semantics.
Eliminate detailed documentation of most values copied from x to result.
cbind: factor out some common code and drop pad from results
rbind: use z for return value.
r was already used for somthing else.  Also I forgot to update the variable
name used in the last couple of lines.
cbind: documentation adjustments.
cbind fully(?) on new scheme.  Use NA_character, not ''
for values we really don't know.

As advertised in the comments, I basically punted on $prepared.
It is quite redundant with the information at the mids level anyway.
rbind: fix typo
ibind: moved to new scheme.
ibind has the semantics I was looking for in rbind.

Also partially cleaned up the end of the text of error messages.
mice.mids move to new scheme.  But a bit more restrictive.
The mids object must be from a run of at least one iteration; this
did not used to be true and is not desirable.

Also noticed loggedEvents was not in def of mids.
Added loggedEvents as slot of mids.
This reflects existing useage; e.g., mice created a loggedEvents member of
the class.

Also noted the unfortunate duplication of mids and prepared.
kill off padModel() entirely.
Merge from inout branch
fix 2 syntax errors
2 more buglets squashed.
mice.r: deleted old, incorrect setting of extra names
internal.r correct handling of type
type, from the predictorMatrix, is used actively by various 2l imputers.
padModel used to rearrange it, but with its demise we have to.
Conceivably this processing should be done in mice()'s checkForm function.
Note also that I preserve some other info that may be useful, and probably
should be passed back up.  In particular, it would be good to know what
levels correspond to what coefficients.
This doesn't quite fit the extra model since it is computed above the level
of the specific imputer (and therefore doesn't know what class of extra to create),
and because it's computed only once per variable.