It is difficult to share functions because they are defined in an entitycontainer.
Functions should follow a similar model to Entities; the types should be defined in schema and we should use the entitycontainer to expose them at the container level, or to bind to particular sets within the container.
As functions and actions are now schema children and function imports are only required for top-level functions we need to change the qualification rules for function and action names: they are now namespace- or alias-qualifed instead of container-qualified.