Restructured code as DUB project

This appears to be the canonical way to build a D app right now.
Explicitly use std.ascii.toUpper()

This allows the app to be built in DMD, which complains about
conflicts between std.ascii.toUpper and std.uni.toUpper
Documented app.d