C++11: use auto & decltype where possible

Also introduces new Image::BufferX::voxel() function, which returns a
fully-formed voxel_type. This allows writing things like:

    Image::Buffer<float> buf (filename);
    auto vox = buf.voxel();

Also use Image::ThreadedLoop instead a non-threaded loop where possible,
using lambda functions. For example, replace things like:

    for (auto l = Image::LoopInOrder(in) (in, out); l; ++l)
      out.value() = in.value() > threshold ? 1 : 0;

with:
    Image::ThreadedLoop (in)
      .run ([&] (decltype(in)& in, decltype(out)& out) {
         out.value() = in.value() > threshold ? 1 : 0;
       }, in, out);