language changes: ~T -> Box<T>, ~expr -> box expr.

this also modernizes the internal APIs a bit, by removing redundant
boxes for many structs (e.g. Options).