Slate: distinguish between Canary and non-Canary Chrome windows

It turns out the simplest way to figure out the bundle identifier of a
given window's app is to run a patched version of Slate; here's the
patch and corresponding branch and pull request:

  https://github.com/wincent/slate/commit/e8de1a768ddd2d8188acfb6009
  https://github.com/wincent/slate/commits/bundle-identifiers
  https://github.com/jigish/slate/pull/387

So that we don't break if we're not running a patched version, we fall
back to the old behavior if Slate doesn't have a `bundleIdentifier()`
method.

The layouts are pretty gnarly and dense at this point, so I'll ponder
and see if I can come up with a nice way of expressing these changes.

Signed-off-by: Wincent Colaiuta <win@wincent.com>