Add a generic street notes source interface.

Put all note-related stuff to dedicated package.
Extract few inner class as top-level classes.
Add few comments.
Merge pull request #1543 from laurentg/pse-optimizations

Add a generic street notes source interface.