Add assertions support

- refactor internal versions of forEach, forOwn and extend
- refactor strf to use optional format parameters
Add assertion specs to spec runner
Remove QM.format

- replaced by QM.strf
Minor tweak when checking for undefined
Use internal forEach to skip unnecessary assertions