Add a custom set implementation based on a vector

Based on the dolfin::Set implementation.
Use vecset instead of flat_set to build sparsity
Add methods reserve and capacity to vecset
Preallocate 13 entries per row when building sparsity
Preallocate set entries heuristically based on arity
No longer require boost
Remove flat_set Cython header file
Merge pull request #370 from OP2/sparsity-vector

Custom set implementation for building sparsity pattern