extract variable order initialization

Add join variable order optimization logic inside `LeapFrogJoin`:

* [ ] get histogram like information when pulling tuples.
* [ ] put sort inside `LeapFrogJoin`, since the variable order is decided dynamically.
* [ ] remove `indexOnFirst`, too few performance improvement (less 1%), conflicts with dynamic variable ordering