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 .
>I think there are some insert functions that return void, so this must be accounted for.

Doesn't the return type deduction handle those cases just fine? The only problem I can see is if someone calls insert expecting a value `auto v = insert(..);` but it returns `void` for that container. Then they will get a compiler error like `v has incomplete type` or similar.