v1.2: Automatic driver selection and class instantiation

using the AutomaticInit method the library will search and find the
appropriate driver and device and generate the object around it.
Will return null if no compatible devices are found.