Check frame atom count before evaluating selections

Several tools work even if passed a trajectory that only contains a
subset of the atoms specified in the topology.  The selections work as
well, provided that the selections don't need to access other atoms.
It may be a bit unclear what the selections need for evaluation, though.
Now the selections report an error if the trajectory does not contain
the necessary atoms; previously, it would most likely just crash.
I'm not 100% sure that the check catches all possible cases, but at
least for the majority of the cases it will provide significantly better
feedback.

Currently, it is only possible to pass the first N atoms, as supporting
anything else would require significant changes elsewhere as well, but
the check itself would be straightforward to adapt if the implementation
gets otherwise done (just replace the std::max operations with unions).

Change-Id: I5d9bf68567ba8634bb81b82a6833c0d398a40bdb