Added input validation

Full real-time input validation added.  File won't be downloaded unless
all input is valid.  TODO: Verify no double-defaults, at least 1 of
each public class, doesn't exceed max classes