Fixed bug in tests/vector_view.cpp

Permutation object was initialized with full context instead of a single
queue.
Adding vex::precondition function (checks runtime conditions)
Enforcing single-device condition for relevant operations

FFT, SpMatCCSR, vector slices and permutations will throw
std::runtime_error if used with more than one compute device.
Fixing a bug in tests/tagged_terminal.cpp

Slices should be used with single compute device.