chromeos: refactor LockWindow

LockWindow is used from both chrome and ash. LockWindow reaches directly into
ash and parents a widget to ash's hierarchy. This won't work from the chrome
side. The code has been refactored in two ways:

. ash specific functionality has been moved into LockLayoutManager.
. a factory function for creating the widget is added to ash/public/cpp. The
  function takes an argument that dictates how it works. Specifically in
  ash code the parent is supplied, outside of ash the container id is used.

BUG=899862
TEST=covered by tests

Change-Id: I4c0ca9c91948df9f653f5cb97bb6bc1c48c09301
Reviewed-on: https://chromium-review.googlesource.com/c/1364076
Reviewed-by: Jacob Dufault <jdufault@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614420}
20 files changed