add texture-mapping classes
add TODO list
update gitignore
add Texture, ScaleTexture, ConstantTexture
add AddTexture, LerpTexture, rename ScaleTexture -> MulTexture
add ImageTexture
rename Simple -> BSDFPassthrough
add PlanarMapping2d and Material::Lambertian
fix: wrap_num fails for x=-width*n