More minor changes

* Moved struct typedefs to header file in preparation for future doc
  commenting.
* `xmux_frame_get_dimensions` now returns a proper struct instead of a
  pointer to a static array.  `xmux_map_request` now casts a struct into
  an array, which I'm told isn't very portable, but it sure is neat.
* Replaced the `ratio` attribute of `xmux_frame_t` with a split attribute
  that tells the position of the split in pixels, relative to the left
  border of the frame structure in question.  As before, `split == 0`
  signifies a leaf frame with `xmux_window_stack_t` in `child`, and
  `split < 0` signifies a vertical split, with `-split` telling the
  position of the split in pixels relative to the top border of the
  containing frame.