IndexedPiece Now Properly Caches NoteRestIndexer Results

Closes #263

- added new function to help testing with mocks
- added the required logic fixes
- more thorough testing of IndexedPiece.get_data()