Parse body data sheets with Ragel

Completely separate data parsing from the model

Per #2