Handle empty multipart document

This adds a new state to the parser to handle the `close-boundary` token, which indicates the document is about to end. This then adds a transition to this state when a hyphen is seen after the opening boundary, indicating the document is immediately ending (and thus empty).

Fixes #35