Improve CMake build system, allow easy integration

Make backward easier to use for CMake users, enabling easy feature detection and integration.

We now detect presence of libdw, libbfd and libunwind directly in the script. The macro add_backward adds needed libraries, definitions and the include directory to a target. The pseudo-library enable_backward enables automatic backward processing for common failures to a target.

If BACKWARD_ENABLE_ONLY_IN_DEBUG is set to true, automatic backward processing is only added when the build type is Debug or RelWithDebInfo.

To integrate backward in an existing CMake project:
add_subdirectory(/path/to/backward-cpp)
add_executable(mytarget example.cpp ${backward_ENABLE})
add_backward(mytarget)

BACKWARD_DEFINITIONS has been renamed to backward_DEFINITIONS to have a naming convention for public variables similiar to the find modules.
Fix compilation warning under clang

Clang complains about adding const to a reference type having no effect.
Fix this by adding and using a const_ref_t.