Add functions

@benbjohnson please review

  This is based on half of the timezone PR I opened the other week.  It adds basic ability to run functions at query time.

  It'd be easy to add functions on specific properties or property types (as we discussed as the future with timestamps), or to add arguments to function calls.