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 .
> Does `view::join` degrade the traversal category of a range? If I join two `RandomAccessRanges` do I get a `RandomAccessRange` or a `BidirectionalRange`?

You get a `RandomAccessRange`, as you should.

Since, at this moment, it seems like all the models of Extensible will also be Containers, I'd rather we defined the Container concept and made ExtensibleContainer refine that.