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.
9 jobs for fix-lifetime-issue in 5 minutes and 49 seconds (queued for 1 minute and 12 seconds)
Status Job ID Name Coverage
  Test
passed #67302
VS2015
VS2015-32-bit

00:01:08

passed #67301
VS2015
VS2015-64-bit

00:01:22

passed #67300
VS2017
VS2017-32-bit

00:01:11

passed #67299
VS2015
VS2017-64-bit

00:01:25

passed #67296
Linux
clang-c++11

00:03:02

passed #67298
Linux
cppcheck

00:00:37

passed #67303
Linux
doc

00:00:18

passed #67295
Linux
gcc-c++11

00:03:58

passed #67297
Apple
macos-c++11

00:03:00