Implement full metadata row processing for search

Hi @hleeldc and @lisaslyis,

Here's the implementation of the fix for issue #311 

The list of changes is below. I've tested the code and it seemed to work as desired. If there are further issues, please let me know and I'll fix them.

- Added SearchResultProcessor interface to Index, which has one method -
  process - that accepts a Map<String, String> that represents a single
  metadata row returned in a search. The array looks like what you'd get back
  from a call to getItemMetadata, with the identifier included in the map.
- Add override method for search in Index, accepting a
  SearchResultProcessor
- Implement override in FusionIndex
- Change indexTool search function to exercise the above