No need to define SHOW_KERNELS in build_init

Environment variable works better
Provide is_device_filter metafunction

Checks if the provided type is a device filter.
Use is_device_filter to disambigute Context constructors
Provide alternative Context constructor for user-supplied contexts/queues
Duplicate device in tests if only one is available

This makes sure that multidevice functionality is thoroughly tested.