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.