Convert project over to typescript

Premerged with pull request #73.