layers: Initial framework for DeviceLimits layer

This includes many initial entrypoints and setting up function intercepts with only a few actual checks to begin. DeviceLimits layer is intended to capture two broad categories of errors:
1. Incorrect use of APIs to query device capabilities
2. Attempt to use API functionality beyond the capability of the underlying device

DeviceLimits stores its own internal record of underlying device capabilities and flag errors if requests are made beyond those limits.

Initial checks and documentation include verification of EnumeratePhysicalDevices call and some basic queue create/get validation.
5 files changed