[grid.layers] return by value, instead of shared_ptr
[grid.provider.interface] return by value, WARNING

This commit changes the behavior of grid providers. From now on all
methods involving grid view or parts will return new instances of that type
instead of a shared_ptr. The implications should be small (don't deref what
you obtain from a grid provider anymore) but special care has to be taken
if the return value is given to a longer living object storing a reference,
which will break from now on, since it will hold a reference to a temporary
grid view:

    const OperatorType operator(*grid_provider.view());

See the following commit to get an idea of the changes necessary.
[test.grid_provider] update grid provider usage
Merge branch 'master' into less_shared_ptr
[common] removes deprecated extended parameter tree