decode_all_bits

the function is a class method and it takes a dict as arg

basically we have a list as value of the key:value pair

1st item is the byte to check
2nd item is the bitmask 
3rd item is the bits to shift

you could update the result without calling add_result but I think it's more readable this way