Distribution Updates

As noted in #902, distribution does not take into account the width or height of the nodes. This means that distribution of a set of nodes would distribute the nodes by their centers, causing overlap. This pull request changes the distribution behavior so that if the maximum and minimum nodes have enough space between them (top), the nodes will be distributed with an even gap (bottom). But, if the nodes do not have enough space between the max and the min in the selection, the nodes will be moved to stack on top of each other or next to each other (middle) as seen in the image.

![distribute](https://cloud.githubusercontent.com/assets/1139788/3634381/32321df2-0f28-11e4-886b-ae349e4699b9.PNG)

@Benglin please review.