Refactor get_pos code for RT-21

The RT-21 returns a variable length string that is terminated by a
semicolon (';') and shorter strings have a leading space character as a
pad.  As a result the read_string() function is used to read the string
from the port and strtof() is used to obtain the numeric value returned
by the RT-21.  Tested by Will, WC2L.