insert/push_back/push_front range extension

Add range-based non-member non-friend insert extension, push_back/push_front utilities that build upon it, and RANGE_RETURNS utility macro.

Closes #4 .
It's an interesting question, right? What should these routines be called? The ultimate goal is to have these as member functions of the containers. There, `push_back` means something specific already. There is `insert`, but it takes a position. `basic_string` has `append` that takes a range of characters, so `append` seems like a good candidate. (Following `string`s lead in interface design seems dubious, but in this case maybe there's an argument for it.) There is no prior art for `prepend`, but it seems logical.

Distinguishing the single-element `push_back` from a differently-named range-based version might made sense since the two would likely have different exception safety guarantees. A single-element `push_back` is likely strongly exception safe, whereas appending a range is not.