ivory-backend-c: change options parser datatype

- more flexible to keep both errors and successful parses around,
  and decide what to do with them later
- makes it easier to write the more general parser used by tower, etc