build: use ARGV.interactive? instead of .flag?
Add test for ARGV.flag?
Simplify implementation of ARGV.flag? and .switch?