Update return values to demonstrate compound types

I've changed the named function into a labeled function.

This again simplifies jsig so that there are only
    labeled types and not named types.

I've removed explicit function overloading, you cannot
    define the same label or named function multiple
    times.

Instead you can use the compound type syntax that already
    exists to state that the label `fooAsync` implements
    both signatures.

This simplifies jsig so that there are only compound
    types and not function overloading.

cc @jden @Matt-Esch