Merge remote-tracking branch 'origin/garth/fix-issue-300'
Allow arbitrary shaped functions in errornorm with TensorFunctionSpace.

Fixes issue 180.

Also did some cleanup and future proofing by avoiding
passing mesh= to assemble.
Add warnings and deprecations in assemble* and Form.__init__.

In some combinations of input, assemble* has dangerous behaviour
modifying input arguments, which we now warn against.

A lot of arguments are due for removal and have been marked for deprecation.
Merge branch 'martinal/fix-issue-180' into next
Merge branch 'martinal/topic-deprecate-and-warn-in-assemblers-and-form' into next