Ephemeral Pipette instances in control endpoints triggering asserts
## overview

When Pipette objects are created for use in control endpoints, any objects created after the first on each mount will trigger an assertion that a Pipette already exists on that mount. This state should be cleared when the Pipette object is destroyed.

## steps to reproduce

Call the `/robot/home` endpoint twice with the same mount
diff --git a/api/opentrons/robot/robot.py b/api/opentrons/robot/robot.py
index 71d4091995..b761856469 100755
--- a/api/opentrons/robot/robot.py
+++ b/api/opentrons/robot/robot.py
@@ -423,6 +423,11 @@ class Robot(object):
             point=(_x, _y, _z)
         )
 
+    def remove_instrument(self, mount):
+        instrument = self._instruments.pop(mount, None)
+        if instrument:
+            self.poses = pose_tracker.remove(self.poses, instrument)
+
     def add_warning(self, warning_msg):
         """
         Internal. Add a runtime warning to the queue.
diff --git a/api/opentrons/server/endpoints/control.py b/api/opentrons/server/endpoints/control.py
index ff6bd97550..e0a00e6a32 100644
--- a/api/opentrons/server/endpoints/control.py
+++ b/api/opentrons/server/endpoints/control.py
@@ -254,6 +254,7 @@ async def home(request):
             if mount in ['left', 'right']:
                 pipette = instruments.Pipette(mount=mount)
                 pipette.home()
+                robot.remove_instrument(mount)
 
                 status = 200
                 message = "Pipette on {} homed successfully.".format(mount)
diff --git a/api/tests/opentrons/server/test_control_endpoints.py b/api/tests/opentrons/server/test_control_endpoints.py
index 50650f6b76..c4a5fb35cd 100644
--- a/api/tests/opentrons/server/test_control_endpoints.py
+++ b/api/tests/opentrons/server/test_control_endpoints.py
@@ -131,9 +131,11 @@ async def test_home_pipette(virtual_smoothie_env, loop, test_client):
         'mount': 'left'}
 
     res = await cli.post('/robot/home', json=test_data)
-
     assert res.status == 200
 
+    res2 = await cli.post('/robot/home', json=test_data)
+    assert res2.status == 200
+
 
 async def test_home_robot(virtual_smoothie_env, loop, test_client):
 
['api/tests/opentrons/server/test_control_endpoints.py', 'api/opentrons/robot/robot.py', 'api/opentrons/server/endpoints/control.py']