Rewrites element positioning logic.

Squashed commit of the following:

commit 4275bcdffe29ca1f1b81343ec5ed0a398fa4ffb8
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sun Feb 23 11:26:12 2014 -0600

    Fixes upper bound calculation.

commit 81d64532195b77b105583b3a535b2b61b2f0b877
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 21:07:14 2014 -0600

    More box model fixes.

commit f60f9d8ed79619426b48805368ca4c14ff03f570
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 20:59:27 2014 -0600

    Tweaks within code a bit to account for box model.

commit ddc54ea2963534053af27808a1dd93dca67202ca
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 19:48:34 2014 -0600

    Bumps to verison 0.3.1.

commit 2451e334126a38c39042ecf088ccf8b972219e25
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 19:47:35 2014 -0600

    README formatting fixes.

commit 7b17b25f9a5461fcfdf5f4a5c7bfa3878b10ce4e
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 19:45:42 2014 -0600

    Rewrites positioning logic.

commit 5610fb86c6e274f9de1efea191bb88ad5c04df72
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 16:41:14 2014 -0600

    Fixes some precision issues.

commit 22e654184a992260e2052f9e5722f88048f92caf
Author: Jeremy Kahn <jeremyckahn@gmail.com>
Date:   Sat Feb 22 16:12:26 2014 -0600

    Changes bounding box calculation.