Implement debug-at-start launch support for file actions.

This change adjusts the Linux/*BSD launching for later attach
(with debug-at-start set) to:
1. set the working directory properly, and
2. handle file actions, like file close, duplicate, and open.

The open call checks for duplicate paths specified in opens, and
if so, uses a file handle dupe rather than a new open.  I was
seeing behavior on the duped stdout/stderr specification on a pty
that looked like the second open was stalling.

Note the simple loops case that worked before this change no
longer seems to work.  Checking this in for Shawn to look at.

Implements the following work item:
https://github.com/tfiala/lldb/issues/42

Requires another clean-up step to undo the earlier changes
I made to the original launch flow.
Merge remote-tracking branch 'origin/dev-llgs-local' into dev-llgs-local