perf(notification): reduce overhead for getting user notification methods

Reduce unnecessary iteration through the entire set of user metadata by constraining with a where clause
fix(notification): notification setting values should always cast as boolean

Storing notification setting method values as metadata gives too much room for type mismatch. This makes setter and getter values use strict boolean  rules.
Adds regressions tests.