Refresh memory::buffer implementation

buffer and array_buffer were suffering of some design issue : 

 - its divergence from some standard sequence concept 
 - its silent 'not really empty' trick to make some function works on empty table
 - array_buffer was relatively redundant with boost::simd::aligned_array

This series of patch make buffer more STD like, remove the 'not really null' hack and reimplement functions that required it. This is also a transition to a c++11 friendly implementation.

nt2::swap has been made responsible for doing this, see line 45 in core/container/table/include/nt2/core/functions/table/swap.hpp