Quingo: A Domain Specific Language for Quantum Computing with NISQ Features