Squashed 'lib/context/' changes from 329beec..7d22654

7d22654 subject and observer tests
9472b9f context, subject, observer

git-subtree-dir: lib/context
git-subtree-split: 7d226549a75fc5eea60b64e75c2dfc7447078ca5
lib/context update