Remove dead argument on Plan::__init__
Directly pass sparsity.maps to build_sparsity_pattern
Use numpy arrays in build_sparsity instead of malloc'ing by hand
No more need to explicitly free since Cython manages memory