Rearrange main imports to be more py2exe friendly
FIX: showstopper bug with NA handling and data-independent builders

Some formulas, like "~ 1", don't actually depend on the passed-in
data. So given a formula like "y ~ 1", what we do is build the y
matrix for the LHS, and then build a 1x1 matrix for the RHS, and then
broadcast the RHS matrix to match the left. However, this broadcasting
logic was broadcasting to the *original* size of the LHS matrix,
*before* NA removal.

One result: expressions like dmatrices("y ~ 1") were returning
matrices with different numbers of rows, whenever y had missing
values.

Another result: dmatrix(..., result_type="dataframe") was totally
broken in the presence of NAs, because RHS-only formulas still have an
invisible zero-column LHS which is calculated and then discarded. But
this was calculated with the wrong number of rows, and then when we
tried to convert it to a zero-column DataFrame, its shape didn't match
the index that we tried to put on it. (Because NA removal *was*
correctly affecting the index.)

Fixes gh-22.