Using strings for field choices

    - Is better to see what is waht in the code
    - Also changed a few fields to not be mandatory, more
      sensible defaults and better lengths
Changing frontend to adapt to changes in API
DRY++ in frontend gearbox types