changed way boxfill linear levels are determined

Now respects users' level_1/level_2
also uses mkscale to figure out niceer labels if more than 25 levels
makes sure level_1/level_2 are part of legend
updated tests