retain ReadOnlyDictionary reference instead of recreating instance on each property get

ReadOnlyDictionary is only a wrapper around an existing dictionary so
you can retain the reference instead of recreating new instances on each
call.

This change avoids a (minor) performance bottleneck if a user queries
the properties in a loop and is not aware of the inner implementation.
Merge pull request #1 from hanswolff/master

retain ReadOnlyDictionary reference instead of recreating instance on each property get
Merge branch 'development'
Creating release 2.12.0
Merge branch 'development' into portable