Case-insensitive search.

* refactored block/item filtering for better readability
* made search case-insensitive
Include category when matching filter.

* the item's categories are now matched against the filter, too.
* refactored and documented the matching.
Merge pull request #1 from skaldarnar/enhanced_search

Complete win!  Yes,  that hairy if statement needed some love.