Refactor Function.__init__ to make it clearer what happens. Now every case has its own __init_foo function which separately are easy to understand.
Allow creation of function space from ufl.Domain. Refactor some of the shared analysis of the mesh argument to helper functions.
Some bugfixes and disable checking of constrained_domains which I now understand why was disabled before.
Pass count=self.id() to all ufl.Coefficient.__init__ calls.

Made sure that the cpp constructors are called first,
such that the id() should be valid.
Merge branch 'martinal/topic-use-dolfin-variable-id-as-ufl-coefficient-count'