_profile.py: Added a new profiling topic, load-selection

profile_start() and profile_end() calls have been added to
Stream.load_selection()
diff --git a/buildstream/_profile.py b/buildstream/_profile.py
index b293c34..d977c5d 100644
--- a/buildstream/_profile.py
+++ b/buildstream/_profile.py
@@ -46,6 +46,7 @@
     LOAD_CONTEXT = 'load-context'
     LOAD_PROJECT = 'load-project'
     LOAD_PIPELINE = 'load-pipeline'
+    LOAD_SELECTION = 'load-selection'
     SCHEDULER = 'scheduler'
     SHOW = 'show'
     ARTIFACT_RECEIVE = 'artifact-receive'
diff --git a/buildstream/_stream.py b/buildstream/_stream.py
index 62eff1d..26aa645 100644
--- a/buildstream/_stream.py
+++ b/buildstream/_stream.py
@@ -32,6 +32,7 @@
 from ._message import Message, MessageType
 from ._scheduler import Scheduler, SchedStatus, TrackQueue, FetchQueue, BuildQueue, PullQueue, PushQueue
 from ._pipeline import Pipeline, PipelineSelection
+from ._profile import Topics, profile_start, profile_end
 from . import utils, _yaml, _site
 from . import Scope, Consistency
 
@@ -106,10 +107,16 @@
     def load_selection(self, targets, *,
                        selection=PipelineSelection.NONE,
                        except_targets=()):
+
+        profile_start(Topics.LOAD_SELECTION, "_".join(t.replace(os.sep, '-') for t in targets))
+
         elements, _ = self._load(targets, (),
                                  selection=selection,
                                  except_targets=except_targets,
                                  fetch_subprojects=False)
+
+        profile_end(Topics.LOAD_SELECTION, "_".join(t.replace(os.sep, '-') for t in targets))
+
         return elements
 
     # shell()