Add append_mut() and split_off() to DList as per coll. reform.

Implements the `append()` and `split_off()` methods proposed by the collections reform part 2 RFC. Named it `append_mut()` instead, because there's a pre-existing `append()` method.

RFC: https://github.com/rust-lang/rfcs/pull/509
Tracking issue: https://github.com/rust-lang/rust/issues/19986
I would appreciate comments at the top of these blocks specifying the "case" they're testing. e.g. "append empty list to non-empty list"