Begin switching to BuxtonLayer struct throughout

This is the first of a few commits that are required within Buxton
to correctly refer to layers.

We introduce two new enums, BuxtonBackendType, and BuxtonLayerType,
to allow identification of these types and ensure we limit ourselves
to these cases, instead of attempting to parse random layer names
or indeed back names, so that we do not accidently load a 3rd
party module as a backend.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>