buffer: stack frame overhead optimizations

When using gegl_buffer_get / gegl_buffer_set and gegl_buffer_sample for
small/1x1px sized rectangles the overhead of each involved function call
amounts to more than 2% of time spend processing.

This refactoring involves moving gegl_buffer_sample from gegl-buffer.c to
gegl-sampler.c to make them live in the same compilation unit. Replacing
internal nested chains of function calls with added complexity with an
inlinable implementation using switches.
buffer: remove buffer/gegl-sampler.c:gegl_sampler_type_from_string
perf-test: make rotate-nearest actually be nearest