add discontinuous RT element
Test reusing partition for mesh
Changes in support of new Domain representation in UFL.

This is considered an infrastructure update, although some
end-user features are introduced and working, e.g.:

  assemble(1*dx(mesh))

A summary of features will be presented at a later stage,
some details may still change during the development.

More importantly, this work lays a foundation for the
symbolic side of future multidomain features.

A summary of the changes:
- Refactoring of assemble functions, most importantly extract
  wrapping of ufl form into dolfin Form as a reusable function.
- Change some expr.cell().d into expr.geometric_dimension() in demos.
- Call geometric_dimension() directly from Coefficient subclass
  instead of going through cell() in Function.
- Rewrite demos to avoid cell.foo notation for geometry. This is to be deprecated.
- Change specialfunctions to use CellVolume(cell) instead of cell.volume notation.
- Avoid ufl cells wherever possible.
- Using e.g. FacetArea(mesh) instead of mesh.ufl_cell().facet_area.
- Deprecating common_cell in Expression and Constant __init__ signatures.
- Use form.empty() and form.integrals_by_type(domain_type), and avoid using variable name 'domains' to mean subdomains.
- Fix domain_data extraction to match new ufl domain model.
- Implement a Mesh.ufl_domain() function, automatically constructing a ufl.Domain object matching the mesh.
- Always reconstruct form with valid domain before passing to ffc jit, avoiding need for common_cell in form data computation.
- Add a bunch of assembler tests, various ways to pass mesh to assembler. Now includes e.g. 1*dx(mesh).
- Add mesh argument to assemble_system and SystemAssembler for consistency in assemblers.
- Fixes in errorcontrol test by reconstructing functional instead of using replace.
- Implement ufl_id() for Mesh, new protocol that allows dolfin to
  tell ufl that two objects are the same when they have different
  python instance because of swig issues.
- Fixes in projection to pass mesh through measure.
Merge branch 'master' into martinal/topic-multidomain-infrastructure2

Conflicts:
	test/unit/fem/python/Assembler.py
	test/unit/fem/python/Form.py
	test/unit/mesh/python/Mesh.py
Merged master into chris/hdf5-reuse-partition
Add restore partitioning parameter
Move parameter to function call
Do not make partition re-use arguments optional and small naming change for consistency.
Add parameter to XDMFFile too
Add read method to XDMFFile
Update test
Fix issue 196.

If PETSc is already initialised (e.g. from importing petsc4py),
insert the command-line arguments via PetscOptionsInsert.
Fix typo in EpetraLUSolver.cpp.
Fix filename in singular Poisson demo.
Fix GenericTensor/Vector::init hiding and cover with cpp unit test.
Add interface to save point clouds to XDFM files.

Tests still needed.
Move the PetscOptionsInsert call into the init_petsc
routine in SubSystemsManager.
Merge branch 'pefarrell/petsc-args-plus-petsc4py'
Merge branch 'garth/fix-vector-init-hiding'
Remove add/modified comments. Causes unecessary merge conflicts.