loader: Create a VkPhysicalDevice object rather than using ICDs

This allows loader to keep some data with PhysicalDevice object needed for
looking up things.
Allows removal of loader_get_icd() which aliased VkPhysicalDevices erroneously.
Also allows removal of the fixed size array of device extensions.
4 files changed