Added gain handler object

Interaction spaces now have some logic to handle gain, and uniform
interface to get gain from. Now we can change our gain scaling math and
not have to track down all changes in the library.