fixed glyphRunsWithRange

previous implementation did not cater for a range that it shorter than the lengths of the runs. Now this is done via range intersection.