Modify Settings to satisfy the Unmarshaler interface

Instead of exposing the underlying settingsMap, this PR makes Settings satisfy the Unmarshaler interface.