Dynamic attribute order in LeapFrogJoin

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.
* [x] remove `indexOnFirst`, too few performance improvement (less 1%), conflicts with dynamic variable ordering