ip: Remove unnecessary sorting before matching.

This seems like it was a debug utility that made it into the final
code.
math: Remove unnecessary subroutine overloading

I can achieve the same thing in fewer lines just using default
template arguments.
ip: Remove redunant code in Matcher.h

This new helper sub function should achieve the same results as the
template specialization and hopefully use less code.
ip: Added a return match indexes option to matcher

This is a way that hopefully has a lower memory foot print than simply
producing an entirely new copy of the matched arrays.
ip: Make matcher agnostic to input container if list
math: remove use of unsigned in KDTree

unsigned is declared in Qt I believe. We should only be using uint32
uint64 or size_t or int. Unsigned isn't one of our types and can cause
errors if someone builds VW with the minimum set.
Revert "math: Remove unnecessary subroutine overloading"

This reverts commit 5a25f01d129f75c4f5805a6e4e757aa93119e276.

Unfortunately that commit is only valid C++ in C++11.