Parse a firmware version string in the format "x.y.z-b" or "x.y.z+b" (e.g., "1.2.3-4" or "1.2.3+4").
Returns true if a is less than b according to version precedence.