Move basket line removal to the managing formset

Old code was breaking `.save()`'s promise of setting a primary key and caused setups with M2M relations to a basket line to fail. This code causes quantity input of zero to be treated as if the user checked the DELETE checkbox.

Fixes #1267