merge everything back from mainline branch

Benjamin Mako Hill || Want to submit a patch?