DSM resolution auto detection

This further expands upon #1411. The original approach to DSM resolution autodetection
was done by Mathieu Rondonneau from the OpenPilot project. This approach was unsafe
because it could result in stack overflows (by infinite recursion for bad data) as well as
allows the resolution to change at any point during execution.

I have written a new approach to the resolution detection, based on the fact that it appears
all DSM packets start with channel orders of 1 then 5. This also only allows setting the resolution
one time and stays "unknown" until it gets a positive hit for either 10 or 11 bits.

This is combined with a set of unit tests ```make ut_dsm``` which uses dumps that I parsed from
some files I collected with my own satellite and some that are available online here:
http://wiki.paparazziuav.org/wiki/DSM#Raw_DSM_data_capture_files