Complete rewrite of pyship.

Rewrite pyship to make code cleaner.
Known bugs:
1. Doesn't handle duplicate guesses properly.