Add support for save_m2m and InvalidArgument

This pull request adds 2 new features:

* `save_m2m`: If one calls `mmf.save(commit=False)` any M2M fields on the forms won't be saved at all. To fix that, `mmf.save_m2m()` now exists.
* I found myself in a situation where only a small amount of forms didn't take a certain argument. Since adding `form1_a`, `form2_a`, ... `form(n-1)_a` is rather time-consuming, returning `InvalidArgument` from the `dispatch_init_$keywork` method will not pass the argument to the forms `__init__`.