Update balance_partition fuction.

A little mistake fixed.
Left over bucket during partition can be splited if it can
further drill down. So during balance_partition fuction, left
over bucket should add to next round revursive.

I add a attribute in generalization.py(self.split_list) to denote
bucket split route. When pick_node fuction comes to left over bucket,
it will check un-splited value (all possible values exclude split_list).