The kernel generator now supports a root_node in addition to the added statement
Fixed bug in mapped_matrix::offset() on column-major layout.

Resolves generator BLAS3 test failure
Migrated AMG to multiple contexts.

Also improved efficiency a little while doing so.
Reduced vector instantiation overhead by using clear() instead of copying from std::vector<>

vector_assign() has an optional third boolean flag which indicated whether the value
should be assigned to the whole buffer rather than the whole vector (only of interest if internal_size() > size())
Merge remote-tracking branch 'upstream/master' into pyviennacl
Buffer creation from OpenCL context now a const member

There is no reason for not making it const...
Uniformized statement traversal for mapping, name generation, enqueueing

Uses a generic traverse<Fun>(statement, statement_node, fun).
Extended SPAI to run in separate contexts. Fixed a bad bug and unified style a bit.

In particular, the implementation should now be able to support multithreaded execution (multiple threads operating indepedently in different contexts)
Merge branch 'master' of github.com:viennacl/viennacl-dev
Fixed the autotuning procedure compilation

uses statement.array()[0] as root_node.
Added UNARY_OPERATION_TYPE_FAMILY handling in traverse<>()
Generator : now using traverse(statement, root_node, fun, recurse_binary_leaf) for all the statement recursions
Fixed use of no longer defined variable in OpenMP pragma.
Fixed 'unreachable code' warnings.
Fixed error on Clang due to redefinition of default argument in generator.
Added GPU-based FSPAI to SPAI-tutorial, fixed context assignment in FSPAI.

Hence, FSPAI can now be used in a per-context multithreaded setting.
Add ViennaCL scalar types; improve type deduction
Fixed bug on CPU implementation of multi-inner_prod
Tests: Applied finer granularity. More tests, but each more light-weight.

This is mostly achieved by splitting single and double precision tests
into separate executables, sharing a common implementation in a header file.
matrix-test was additionally split into row- and column-major tests.
Fixed implicit conversion from raw pointer to shared_ptr in mapping_.insert(). Fixes C++11 compilation on GCC 4.7.