Create the voicemail fragment on-demand, not every time.

Main changes:
- Remove fragment from call details xml, leave a placeholder comment.
- Add fragment dynamically using fragment manager if desired.
- Change api for setting voicemail and whether to start playing:
  accept the uri and start playing as constructor parameters for
  controller, have the fragment parse them from the arguments bundle.

Other changes:
- Inflation of fragment requires ignoring the parent.
- Changed locking strategy when updating clip position, it's only done
  now when getting the current position.  This guarantees that we don't
  try to get position after scheduled runnable is null (which should
  prevent us trying to call get position once we've released the player,
  which was the source of a crash I would rarely see when using the back
  button).

Bug: 5048103
Change-Id: Ie82708184295500473b5d2c5db010cdd332acb8a
4 files changed