cherry-picked from 72e2c7b27b
Currently we get a number of warnings when building the documentation for Mesh_3:
```
/home/cgal-testsuite/cgal_doc_build/CGAL-5.3.1-I-169/doc/Mesh_3/Mesh_3.txt:743: warning: unable to resolve reference to 'CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h\' for \ref command
/home/cgal-testsuite/cgal_doc_build/CGAL-5.3.1-I-169/doc/Mesh_3/Mesh_3.txt:801: warning: unable to resolve reference to 'Mesh_3/random_labeled_image.h\' for \ref command
/home/cgal-testsuite/cgal_doc_build/CGAL-5.3.1-I-169/doc/Mesh_3/Mesh_3.txt:817: warning: unable to resolve reference to 'CGAL/Mesh_3/initialize_triangulation_from_gray_image.h\' for \ref command
```
Note the backslash at the end of the file name.
Most likely an attempt was made to escape the dot to not have it as part of the filename, though at least in doxygen 1.8.13 a closing dot was not seen as part of the filename.
Looking at the other escape character of doxygen: the commercial at sign, this was apparently working as escape in the filename as well, though in doxygen 1.8.15 this was not the case anymore either.
During one of the last changes also the backslash lost this possibility for this case and this is now consistent.
The current change (removing the backslashes) doesn't look like to alter the behavior for the 1.8.13 and master version in respect to CGAL.
- Use `value_type` when the returned type is not a reference
- Enforce `reference = value_type` if the returned type is not
a reference (to avoid `typename PM::reference r = get(m, k)`,
which will take a ref to a temporary if the `reference`
typedef is an actualy reference)
- Do not use `put_get_helper` if the property map is not a `lvalue`
**mutable** property map: the `put()` is `map[k] = v`, which
is broken if `operator[]` does not return a reference
- The concept `boost::lvalue_property_map_tag` requires `operator[](key)`,
not a reference in `get(map, key)`. You can have a readable property map
returning a reference through its `get(map, key)`, but if there is
no `operator[]`, it's just a `boost::readable_property_map_tag`
- Some const correctness to avoid copying maps with state
or heavy keys in `get(map, key)` / `put(map, key, value)`
- Base the category of a wrapping pmap on what it offers instead
of just forwarding the base property map's category
- Tried to do something like mutable lvalue pmap:
* `value_type& operator[](key&)`
* `ref get(map, const key&)`
* `put(map, const key&, const value_type&)`
and non-mutable lvalue pmap:
* `const value_type& operator[](const key&)`
* `ref get(map, const key&)`
but not everything fits properly...