Implement `off` method for removing listeners

Can remove all listeners for the given address, or only the one
with a given callback.
Change storing listener by numeric address representation

Before `getRaw` was used to determine an array key for a group address. This
method returns an array of bytes, which is transformed to a string when used
as array key. `getNumber` returns an integer representation for the group
address and feels more correct for a usage as an array key.