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/topic-deprecate-and-warn-in-assemblers-and-form'
Merge branch 'martinal/fix-issue-180'