Add the ability to find items regardless of type

This introduces an IndexedItem trait that can be implemented to expose the id and any other searchable fields.