formalize function style and naming

Commit message:

> 1.  Top-level helper functions are defined via function statements:
>
>          function _add(a, b) { return a + b; }
>
> 2.  Names of top-level helper functions are underscore-prefixed.
>
> 3.  Exported functions are referenced by alias when used internally:
>
>         R.project = useWith(_map, pickAll, identity);
>
>     In this example `pickAll` and `identity` are aliases for `R.pickAll` and `R.identity` respectively.
>
> 4.  Aliases for exported functions match property names of the `R` object. Aliases are not underscore-prefixed.
>
> 5.  Function expressions should be named rather than anonymous. These names should not be underscore-prefixed.

By giving private functions their own "namespace" we avoid conflicts between names of private functions and aliases for public functions. We no longer need awkward names like `internalCompose`. :)