Generalised crossovers and crossover support for piggieback

In my project a lot of code is shared between Clojure and ClojureScript. To make my life easier, I wrote [cljs-compat library](https://github.com/danskarda/cljs-compat) to help me with sharing complex code between Clojure and ClojureScript.

I would like to contribute back to lein-cljsbuild two patches which improve crossover functionality:

1) Generalised processing of crossovers. Transformation function can be specified in :crossover-transformation parameter. Current functionality (remove text ;*CLJSBUILD-REMOVE*;) is refactored into separate function and set as default

This generalisation allow lein-cljsbuid users to write their own transformers.

2) Provide initial support for cljsbuild crossovers in piggieback. New namespace cljsbuild.piggieback provides a nREPL wrapper which invokes piggieback with source code transformed with crossover function (ie with ;*CLJSBUILD-REMOVE*; removed)