Building on top of #360

We could probably improve the search UX in a couple of ways:

* Visually indicate when the "match" is because of a HOC name, e.g.
<img width="161" alt="Screen Shot 2019-08-03 at 1 54 21 PM" src="https://user-images.githubusercontent.com/29597/62416804-36f32f00-b5f6-11e9-9150-e32f652c7f98.png">

* Match built-in HOC types (e.g. searching "me" should match `React.memo` HOCs, searching "f" should match `React.forwardRef`, etc.)

---
Originally reported via https://github.com/bvaughn/react-devtools-experimental/issues/365
let store;
  beforeEach(() => {
    agent = global.agent;
    store = global.store;
    React = require('react');
    ReactDOM = require('react-dom');
    const utils = require('./utils');
    act = utils.act;
    getRendererID = utils.getRendererID;
  });
  it('should not allow a root node to be collapsed', () => {
    const Component = () => <div>Hi</div>;
    act(() =>
      ReactDOM.render(<Component count={4} />, document.createElement('div')),
    );
    expect(store).toMatchSnapshot('1: mount');
    expect(store.roots).toHaveLength(1);
    const rootID = store.roots[0];
    expect(() => store.toggleIsCollapsed(rootID, true)).toThrow(
      'Root nodes cannot be collapsed',
    );
  });
  it('should properly handle a root with no visible nodes', () => {
    const Root = ({children}) => children;
    const container = document.createElement('div');
    act(() => ReactDOM.render(<Root>{null}</Root>, container));
    expect(store).toMatchSnapshot('1: mount');
    act(() => ReactDOM.render(<div />, container));
    expect(store).toMatchSnapshot('2: add host nodes');
  });