Fix a couple bugs and add more unit tests

Created some real-world-inspired test cases, and fixed two bugs:

1. the snake_case converter padded bytes which broke string comparison. It no longer does this.
2. The IncludeIfNotNil helper didn't actually check if the value was nil.