Python SDK introduction

Solves #177.

This is fairly boilerplate, based off of #175.