Implement expense filtering on dashboard

This commit adds realtime client-side filtering of expenses based on
arbitrary input strings. Currently, tags, titles, and person (creditor
or debtor) are searched. The search performs substring matching (i.e.,
"fo" matches "food"), and is case-insensitive. For an expense to match a
query, all words in the query much match, i.e. "jeff food" only matches
expenses with "jeff" AND "food" contained in their searchable text.
Merge pull request #2 from andrewberls/expense-filtering

Implement expense filtering on dashboard