Adding min() for completeness

refs #43
Adding vex::ternary(cond, expr1, expr2) function

Accepts arbitrary vector expressions for any of the three arguments.
Evaluates to ternary operator (cond ? expr1 : expr2) inside kernel
source.

closes #44
Use correct check_sample in tests/vector_arithmetic
Removed vex::ternary() (replaced by boost::proto::if_else)

Boost.Proto (as well as Boost.Phoenix) already provides if_else()
function with the same semantics.

refs #44
Marks vector move constructor as noexcept

This allows stl containers to use move instead of copy and makes
allocated OpenCL buffers persistent.

Also added move constructor (and the corresponding test) to multivector.

(Finally!) closes #25
Merge branch 'master' into issue-25

Conflicts:
	vexcl/vector.hpp
Replacing std::vector<cl::Buffer> with std::vector<vex::vector<T2>> in fft.hpp

This was the only place reproducibly affected by #25. It passes the
tests now, but std::vector<cl::Buffer> should be more effective anyway,
so the change will not go to the master branch.