Rework how master plans declare themselves.  Also make "PlanIsBasePlan" not rely only on this being the bottom plan in the stack, but allow the plan to declare itself as such.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154351 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/ThreadPlanStepUntil.cpp b/source/Target/ThreadPlanStepUntil.cpp
index 79c2544..3c418f2 100644
--- a/source/Target/ThreadPlanStepUntil.cpp
+++ b/source/Target/ThreadPlanStepUntil.cpp
@@ -52,7 +52,11 @@
     m_stop_others (stop_others)
 {
 
+    // Step until plans can be master plans, since you could hit a breakpoint while stepping to the stop point, step around
+    // a bit, then continue to finish up the step until.
+    SetIsMasterPlan (true);
     SetOkayToDiscard(true);
+    
     // Stash away our "until" addresses:
     TargetSP target_sp (m_thread.CalculateTarget());