Rework subscriber APIs and unit tests

Our initial commit for this was pretty terrible. So, now we actually
have code coverage for our subscriber APIs.

Change-Id: I84dc4ffe53042391936074f5c8ff8a7d0fe21729
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>