Fix #75 - Runtime exception when unpickling Array of Tuple

- Nested applied types are now read correctly from pickles
- Adds a helper class and its companion object in the `internal` package
- Adds two ScalaCheck tests