Non-intrusive container adapters

Instead of polluting the container code, which is what students and teachers are going to review, the `edatocpp_container_adapter` template adapts an edalib container to C++ directly, only passing the container to be adapted:

``` cpp
edatocpp_container_adapter<Vector<int>> cpp_ready_vector;

std::copy( std::istream_iterator<int>( std::cin ) , std::istream_iterator<int() , std::back_inserter( cpp_ready_vector ) ); 
```

There are only a few changes done to achieve that:

 - **No custom pair class for buckets**: `MapEntry` was deprecated in favor of `std::pair<const key,value>`. *This could be discussed, is not strictly necessary. Even if you decide to reject the change, please note that a key should always be const*.
 - **Template-template parameters instead of types for underlying container parameters**: This was for being uniform across the hole library only. If you have a container adapter `A`, instancing it as `A<int,Vector<char>>` has no much sense, but its allowed by the previous implementation. What I propose expects a template instead of a type, so the instantiation becomes `A<int,Vector>`, much more clear. I'm aware about the little C++ skills of both teachers and students, so the library defines macros such as `LINEAR_CONTAINER`, `CONTAINER_ADAPTER`, etc hiding the ugly template-template parameters with a name that explains perfectly whats being passed as parameter.