More xblock.save() calls to handle fields set during inits

and other possible side effecting calls

@cpennington @chrisndodge Please review.

I need to think of tests which will fail w/o these changes and then prove they pass, but hopefully otherwise this is done.