Using Multiple Levels Of "many" In Rust's nom Parser

I kept running into stuff with `many0``, `many1``, and `many_till`` in nom that I thought should have worked. Specifically when I was having one looping over another one by nesting them

I finally broke things out to it's own file and got things working by using `many1`` in both cases. Adding an `opt`` to the first one makes sure that things pass.