Correct some documentation errors for various CHOOSE tactics.

Faults (to do with conditions on freshness of variables) identified by
Jeremy Dawson.
Correct bug in type pretty-printer when unary op is "unknown"

The buggy behaviour would cause

    minprint ``x: ('a -> 'b) option``

to print

    x: ('a -> 'b option$option)
Make type_pp a dependency for hol.bare's heap
Define OPTION_APPLY : ('a -> 'b) option -> 'a option -> 'b option

Give it <*> as syntax (following Haskell), as well as the 'name'
APPLICATIVE_FAPPLY, again from Haskell, where this operator is an
important part of the Applicative type-class (along with a "pure"
operator).
Get LIST_APPLY to use <*> syntax via APPLICATIVE_FAPPLY name.