Make `fields` function more composable

Changed fields function to return `{:fields [-f1- -f2- ...]}`
rather than just `[-f1- -f2- ...]`.

This allows you to replace the selected fields of a query the
same way you would replace any other clause:
  (def q (select [:f0 :f3] (from :tbl)))
  (select q (fields :f1 :field2 :as :f2))
Add helpers for composing queries