Support multiple validation errors

This contains a disgusting number or changes. Sorry for the multiple concepts in one PR.  :8ball: 

I am mainly issuing a pull request to start a conversation about if this is a good idea.

* added underscore dependency - mostly for test output invoking and processing
* moved to named functions - better for debugging 
* removed query mutation

```js
if(wildcardCaseInsensitive){
    if(query.indexOf("*") != -1){
        var j = query.indexOf(':');
        if(j == -1){
            query.value = query.toLowerCase();
        } else {
            // found a wildcard field search
            query.value = query.substring(0, j) + query.substring(j).toLowerCase();
        }
    }
}
```

I removed the support for wildcard query insensitivity as it seemed like it might have a bug as it was changing the input query.value expando which in my testing doesn't do anything.