Created a typed wrapper for Checkpoint and added tests for it

Small change to commons. It's annoying to convert back and forth from pipe to TypedPipe when using Checkpoint so I wrapped it to take a => TypedPipe[A] and return a TypedPipe[A]. Tests included (really just copied from the main Checkpoint tests and adapted).