add dub version, move classes into separate files, fill out more documentation
document ranges and arbitrary types, set BSL-1.0 in dub.json