Context takes a client argument, no longer takes view

Context initializes its view attribute with all engines from the client
passed in.  Will initialize with Client() if no client argument
provided.

User can (still) select a subset of client's engines with `targets`
argument.

This is easier to use and less error prone since the view has to encompass engines that are part of MPI.COMM_WORLD, which is rarely a subset of the client's engines, and almost always all engines.