Adds license and notice
Restructure sources and adds custom types
Updates tests
Adds sphinx docs
Updates docs