add conditional :if and :unless logic to filters

+ followed the way conditional procs are built for Scopes
+ by way of Array.group_by, we now only recognize the last-defined
  `filter` call for each individual attribute
+ update the specs to allow `filter` to be called multiple times on
  the same pseudo-document
add modal dialog w/ custom form inputs to Batch Actions

+ symbolize keys for hash passed to user's do block
+ ONLY symbolize keys that we expect to prevent a DOS attack (or a general memory leak)
+ Ruby's JSON.parse raises on empty string, so disable the field if empty