[spaces.cg.pdelab] simplify member

since its not necessary for those memeber to be shared ptrs, there's no
need to make them PerThreadValues either
[spaces.cg] delete copy ctor of pdelab since fem's is deleted too
[spaces] ContinuousLagrangeProvider::create returns pointers

since it cannot return instances, since copying cg spaces is forbidden
[spaces.cg] communicator is no longer a shared ptr
[cg.spaces.fem] mutable communicator prepare needs to be guarded
[spaces.cg.fem] shared_ptr -> stack + constness++
[products] lot less code duplication

a bunch of the classes in h1.hh were actually functionally equivalent to
l2 counterparts
fixes 7cfe517eacafd5d366959d9f674cd8e56d951eac
[products] removes even more duplication
[products] fix incorrect evaluation for H1 classes
[products] unify H1SemiGeneric/L2
[products] fewer subclassing, more aliases
[products] rename *Forward -> Generic* + split
[products] forgot default source = range template args

at least I think those were there before as well
[mapper] PdeLabLFSType seems to be the only necessary to duplicate per threads
[spaces.cg] added copy and mv ctors, forbid assignment
[test.spaces] added test for copy and move ctors
[spaces] update ctors and communicator

This should ensure that all spaces have a sane copy and move ctor and
forbid copy and move assignment. In addition all spaces have proper
communicators now.
[test.spaces] add test for communicator presence
[test.spaces] added copy and move ctor test to the rest of spaces