Fixed a bug when padding a vector.
OpenCL context: Fixed erroneous use of std::max() instead of std::min() for device setup.

This resulted in default_device_num_ being ignored, thus always all available devices were added to a context.
Mixed precision CG: Worker objects now use correct context.

This way the mixed precision solver can also be used in contexts other than the default one.
Changed default vendor profile so that they don't use more than 16kB local memory

A bit hackish for now, it would require an additional level of abstraction in the database...
Scheduler: Extended such that inner_prod(), norm_X() can deal with temporaries.

This enables operations such as inner_prod(x + y, x - y);
Improved profiles handling.

ocl::device can now return device_architecture_family. The vendor default profile is replaced by multiple architecture default. If the profile found uses too much resources and is invalid, it fallsback on the global defaults.
removed warnings on the generator
Fixed compilation failure for x = inner_prod(x,y) * z;

Also added test to ensure this does not break again uncaught.
Merge branch 'master' of github.com:viennacl/viennacl-dev
Scheduler: Fixed external linkage problem previously introduced.
Scheduler: Added support for x = inner_prod(x, y) * y; and friends.

Arbitrary scalar expressions can now appear as prefactors of vectors.
Added viennacl::ocl::set_context_device_num(k, 42); for specifying the maximum number of devices per context.

This should also fix a problem with multiple contexts in the same platform.
Adjusted element_prod and element_div for vectors: Temporaries are handled in op_executor

Previously the temporary dispatch was done directly in element_prod() and element_div().
This is prohibitive for using the scheduler efficiently (temporaries have limited lifetime).
Scheduler: Renamed OPERATION_BINARY_ELEMENT_MULT_TYPE to OPERATION_BINARY_ELEMENT_PROD_TYPE

This is more uniform with element_prod()
Scheduler: Added support for elementwise vector operations.
Autotuner now skips non-unrolled kernel on NVidia and unrolled-kernel on AMD.
Added flexibility on indentation in ocl::device::info() and ocl::device::full_info()
Polished and bugfixed the autotuner
Improved generated kernel name.

Now use the index of the device in the context rather than the device_id(pointer), since the latter prevented caching of the kernels by the NVidia SDK
Fixed conditional jump depending on an uninitialized member in ocl::device