Refactor: Add RemoteControl base class
Refactor: Add RemoteControl base class

So that various remote-control implementations don't have to implement
`keyup` & `keydown` methods that merely raise `NotImplementedError`.

I've disabled pylint's "abstract-method" warning in the whole file so
that I don't have to add it for half the control implementations. It
complains "[IRNetBoxControl] Method 'keydown' is abstract in class
'RemoteControl' but is not overridden".

Note: control_gpl.py::HdmiCecControl doesn't inherit from this base
class, because I didn't want to introduce a circular dependency. It
already implements all 3 methods so it wouldn't gain anything. If we add
common behaviour to the base class in future, we can sort out a way to
add the inheritance without circular dependencies, at that time.

squash! Refactor: Add RemoteControl base class

stb-tester/stb-tester,stb-tester/stb-tester,stb-tester/stb-tester,stb-tester/stb-tester