Fixes the vk_layer_dispatch_table.h header file so that they can be used
in other projects. The contents of this header and
vk_dispatch_table_helper.h have been moved into a new header
vul_dispatch_table.h.
The structs VulDeviceDispatchTable and VulInstanceDispatchTable
struct contain function pointers for the device and instance, respectively.
The functions vul_init_device_dispatch_table and
vul_init_instance_dispatch_table fill out the aforementioned structs,
making the task of setting up the disptach table in a layer much simpler.
Pulling in latest changes from VVL
Use BUILD_TESTS instead of VUL_TESTS. While it's good practice to
prefix variable names it makes updating this code more difficult.
Also since tests can only ever be enabled if the project is top
level, it doesn't affect add_subdirectory users.
Other misc. CMake cleanup
Allows build options specific to Vulkan-Utility-Libraries to be
easily grouped via cmake-gui.
This approach is also nicer for users who consume the library via
add_subdirectory or FetchContent since it more obvious what
settings are being ovverriden.
Remove UTILITY_LIBRARIES_CPP_STANDARD since we don't have a
reason to support multiple CPP standards.
Set testing to OFF by default to make consuming the library easier
for users and package managers.