Improve readability with more typedefs
Fix bug preventing custom pose classes

With the previous code it was impossible to have a pose class derived
from myo::Pose because it would cause a type mismatch in the templated
DeviceListenerWrapper class.

This commit fixes that by removing the template from
DeviceListenerWrapper. This requires static_cast to be used to downcast
from myo::Pose to any pose class derived from myo::Pose.

onPose was also renamed to onIntelligesturePose to help differentiate
it's difference from the onPose in myo::DeviceListener. Specifically
onIntelligesturePose passes poses by const reference.
Remove unnecessary inheritance

Only the root feature needs to derive from myo::DeviceListener.
Therefore RootFeature now derives from myo::DeviceListener and
DeviceListenerWrapper does not.