Record stacks, don't walk optional associations

This changes how record stacks choose associations to walk. They
will now not walk optional associations by default. They will
still walk any association that is preset, including optional
ones. An optional association is one whose columns all allow null
values. This means the record can be saved without those values
set. There are two goals in doing this. Firstly, this should make
the stacks slightly more efficient by not walking stacks when
they don't need to. Secondly, this allows the developer to control
when a stack should and should not build these associations.

Closes #133