Update the has config support to be able to take a ! at the beginning of the has string which will indicate that ! should be added outside the has check, this will reduce the number of has.add() calls needed.  For example "tablet" tests can be changed to "!phone".  I have also updated the testcases to use this support.