Implement promote-fn

Promotes a #() to a (fn []) and a (fn []) to a (defn ..).  With a prefix
argument it will promote a #() all the way to a (defn ..)