I don't really like adding the source to the ColorTheme object. We really only need this because we cannot return multiple values in parseTheme, but maybe we should.

One option is to return an object of type ParsedTheme (or something) that has just two fields: theme and source. What do you think?