Inherit Functioninterface at the UserObject level

closes #3526

This removes the need for inheriting in several derived classes.