Fix lifetime issues for Face::halfedges(), Cell::halffaces().

Currently, the following API-usage is straight-forward and clean but
unfortunately wrong and dangerous:

`for (const auto heh: mesh.face(fh).halfedges()) { ... }`

This is because the temporary `Face` returned by `face()` reaches the
end of its lifetime, but `halfedges()` returned a reference to a vector that
lives inside that object. Reference lifetime extension does not apply
here.

This change splits behaviour so that in rvalue context (such as
temporaries), we move out the vector instead of returning a reference to
it.
Status Job ID Name Coverage
  Test
failed #67097
VS2013
VS2013-32-bit

00:00:14

failed #67096
VS2013
VS2013-64-bit

00:00:14

passed #67095
VS2015
VS2015-32-bit

00:01:09

passed #67094
VS2015
VS2015-64-bit

00:01:16

passed #67093
VS2017
VS2017-32-bit

00:02:08

passed #67092
VS2015
VS2017-64-bit

00:01:19

passed #67089
Linux
clang-c++11

00:03:50

passed #67091
Linux
cppcheck

00:00:48

passed #67098
Linux
doc

00:00:25

passed #67088
Linux
gcc-c++11

00:03:18

passed #67090
Apple
macos-c++11

00:01:42

 
Name Stage Failure
failed
VS2013-32-bit Test
4>CustomBuild:
4> Building Custom Rule E:/gitlab/builds/281b716d/0/OpenVolumeMesh/OpenVolumeMesh/CMakeLists.txt
4> CMake does not need to re-run because E:/gitlab/builds/281b716d/0/OpenVolumeMesh/OpenVolumeMesh/build-release/CMakeFiles/generate.stamp is up-to-date.
4>
4>Build succeeded.
4>
4>Time Elapsed 00:00:00.05
========== Build: 2 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========
ERROR: Job failed: exit status 1
failed
VS2013-64-bit Test
4>CustomBuild:
4> Building Custom Rule E:/gitlab/builds/281b716d/0/OpenVolumeMesh/OpenVolumeMesh/CMakeLists.txt
4> CMake does not need to re-run because E:/gitlab/builds/281b716d/0/OpenVolumeMesh/OpenVolumeMesh/build-release/CMakeFiles/generate.stamp is up-to-date.
4>
4>Build succeeded.
4>
4>Time Elapsed 00:00:00.05
========== Build: 2 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========
ERROR: Job failed: exit status 1