MATCH-100: Support function application in match syntax

Add a new pseudo-pattern AppPattern. This pattern expands the pattern
matrix adding a new occurence whose `:bind-expr` is the supplied
function application. The app pattern is erased and the wrapped
pattern added underneath the occurence. This is applied for all rows
with matching function applications in the same column to support
sharing.

The syntax form is `(pattern :<< fn)`.

Include Clojure/ClojureScript tests that demonstrate usage.