Add a simple grid-based layout manager

Hmm, constructor has a few args, but I think it's fairly clear.

-[Unknown]