A few more optimizations

This fixes a few failing unit tests and E+ runtime error.

component(), demandComponent(), and supplyComponent() within Loop all
return the object immediately if the handles match now instead of
looping through all components then matching handles.

The big time saver in this bunch is the new istringEqual
implementation. Instead of using boost::iequals(), it now uses size
checking and std::equal with individual char checking. In my test
program, istringEqual went from 1270ms->302ms total time for all calls.