use valuesDo:
use includesKey: and includesSelector:
use methodsInProtocol:, added removeProtocolIfEmpty:
use keysDo:
Array >> remove:ifAbsent: written in Smalltalk
using `ifAbsent: [ 0 ]` instead of `ifAbsent: 0`
Merge branch 'master' into lhf

Conflicts:
	js/IDE.js
	st/IDE.st
Merge pull request #790 from herby/lhf

Low hanging fruit