Insert integrals by cell if there are no internal facet integrals in the bilinear form.

The macro-element for dg mass matrices is larger than the sparsity pattern of the matrix, therefore if there are no internal facet
integrals switch back to cell wise matrix insertion.  This will modify the application of boundary conditions a bit, potentially
increasing the number of times a bc value is added to the rhs (and a 1 is added to the diagonal of the matrix).  If rescaled the
effect will also be slightly different though also shouldn't affect the end result.
Merge branch 'master' into dgassembly
Merge branch 'assembly' into combo_assembler
First implementation of triangulation of cell-cell intersection.
Remove stray include
Sort edge collisions before insertion
Add interface for Cell::triangulate_intersection
Initial work on unit test for intersection triangulation
Return triangulation as flattened array. More convenient than implementing
OUT_TYPEMAP_STD_VECTOR_OF_STD_VECTOR_OF_SMALL_DOLFIN_TYPE...
Bug fixes in triangulation. Still missing some corners.
Add function Point::squared_norm and move implementation of both
norm() and squared_norm() to header file.
Rethink triangulation of triangle-triangle intersections. Seems to work now.
Cleanup unit test for triangulation
Add demo demonstrating triangulation of mesh intersections
Some minor updates to demo
Merge changes from master and resolve conflicts (accept theirs)
Merge branch 'jobh/fix-issue-149' into next
Merge remote-tracking branch 'origin/mikael-mortensen/swap4clear-connectivity' into next
Merge branch 'master' into next
Rewrite of SystemAssembler falling back to cell-wise assembly if the bilinear form has no internal facet integrals.  As before this prevents failures when the tensor sparsity doesn't support insertion of the macro element tensor.