Thrift ingest bugs

Fixing the two issues that poor @raronson hit over the weekend. No excuses for not having this spec in the first place.
FWIW I can confirm that by expanding out the failure cases Scala will do exhaustive checking (and complained that `TombstoneValue` was missing once I did that). Not sure if there's a preferred way of checking the value matches the encoding (eg. match on the encoding instead?).

On the question of combining this with `Value.parsePrimitive` it's a little different because that's actually trying to create the `Value` from string in the first place.

Finally, should I move this function to `Value` as well?