Optimize Settings api.

* Caches settings descriptors.
* Uses a hashmap for finding setting descriptor from key.

Change-Id: I97fb536a2b30226896644b56911d4aec3c61cda5
8 files changed