I think you should repackage the Add-Ons (Portal, Gravity, etc.) so that they don't require one another, even if they are using some of the same code. Also, if you're making the Portal Gun offer Gravity Gun-like functionality (which is fine), I would just not offer the Gravity Gun separately (which I guess would solve the one Add-On requiring another).