Moved inline parsers to traits

# Rationale

Moving the traits out means they are easier to test and maintain. It also greatly reduces the size of `InlineParser`. Would like to move more behaviour out, but this is a huge change already and I'd like to see where it goes first...