Add initial scala support

This mostly just adds the beginnings of a slightly more scala-friendly interface for Canary.