Merge pull request #356 from firedrakeproject/parallel-matrix-bcs

* parallel-matrix-bcs:
  Preserve order of supplied bcs in Matrix
Don't add empty entries to Halo sends
Merge pull request #357 from firedrakeproject/no_empty_halo_sends

Don't add empty entries to Halo sends
Missing import
Make user-defined names in Expressions safe

Automagically rename internally generated local variable names to
avoid name clashes with user-defined variables in
Expressions. Introduce a simple test of the same.