3.0 habtm strategies

This add the ability to select between 2 saving modes for belongsToMany: `append` and `replace`, it is basically just a switch between the already implemented modes with a configuration method and another options in the constructor.