Catch FFC EmptyIntegrandError and don't use resulting kernel

It's just computing zero, so don't bother putting it in the list of
kernels to execute.
Build VFS of correct dim in errornorm
Add more tests of assembly cache correctness

Effectively this is turning the assembly cache bug reports into tests.
assembly_cache: Ensure copied matrix is assembled
Check cache size as well as values
Set default SIMD ISA to SSE to be safe
Merge pull request #306 from firedrakeproject/fix/issue_256

Catch FFC EmptyIntegrandError and don't use resulting kernel
Merge pull request #305 from firedrakeproject/fix/parallel_mixed_assembly_cache

* origin/fix/parallel_mixed_assembly_cache:
  Check cache size as well as values
  assembly_cache: Ensure copied matrix is assembled
  Add more tests of assembly cache correctness
  Build VFS of correct dim in errornorm
obtain fiat_element via FFC function