Test suite runs better again after recent fixes that would select a platform if a "file a.out" auto selected a different platform than the selected one.

Changes include:
- fix it so you can select the "host" platform using "platform select host"
- change all callbacks that create platforms to returns shared pointers
- fix TestImageListMultiArchitecture.py to restore the "host" platform by running "platform select host"
- Add a new "PlatformSP Platform::Find(const ConstString &name)" method to get a cached platform
- cache platforms that are created and re-use them instead of always creating a new one



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218145 91177308-0d34-0410-b5e6-96231b3b80d8
Fix for 218140 for SBTarget.i, the added functions were in the wrong class definition

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218147 91177308-0d34-0410-b5e6-96231b3b80d8
Make sure to #include <atomic> when using std::atomic.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218148 91177308-0d34-0410-b5e6-96231b3b80d8