Removed initialization of solution x for error checking and added missing assign_swap
Update clinsolve.hpp
modified tests for linsolve
Introduce is_safe free function.

is_safe was a member function on some of NT2 sequence like
types that made difficult the use of alternate types from
3rd party as such a component.

Contents of this commit :
 - factorize is_safe as a free function
 - remove ::is_safe from the interface of container/buffer types
 - Amend test and usage
raw() is now data()

Still in the process of alignign our API with std containers one,
raw() now becomes data() to follwo C++11 API style. Similarly, the
free function raw() is also renamed data().
along can be used as LHS
Remove dummy value from buffer.
Move assign_swap to core/utility
Rationalize swap on different terminal

Swapping terminals of different layout can't be done without
some copies. Instead of forcing buffer to have a non standard
swap interface, we make nt2::swap handles those cases.
Rename push_back on buffer to append and make it external

container now use append(Sequence,Iterator,Iterator) so
the append API is not tied to any member function.
simd::aligned_array supports size of 0
Remove obsolete array_buffer

container of automatic storage now directly used simd::aligned_array
Make container responsible for all resize checks

To prevent impromptu call to .resize on buffer with no
such method, container now properly checks for both
the static nature of its extent and its storage duration.

Those checks are now make redundant with the one from the
resize extension point which has been simplified.