Return the result of a custom pipe from the public functions that call pipe()

- This allows imperative control of paging/sort/search from a
  directive to perform some action when the pipe is complete.

Closes #233