[WIP] New command line interface

Based on subcommands. cc @gkiss

```
$ hmsm -h
usage: hmsm [-h] {fit-em,atomindices} ...

Hidden Markov Models of Biomolecular Dynamics

positional arguments:
  {fit-em,atomindices}
    fit-em              Fit a gaussian fusion hidden Markov models with EM
    atomindices         Create index file for atoms or distance pairs

optional arguments:
  -h, --help            show this help message and exit
```

```
$ hmsm atomindices -h
usage: hmsm atomindices [-h] -p PDB (-d | -a)
                        (--minimal | --heavy | --alpha | --all) -o OUT

Create index file for atoms or distance pairs

optional arguments:
  -h, --help            show this help message and exit
  -p PDB, --pdb PDB     Path to PDB file
  -o OUT, --out OUT     Path to output file

  Mode: Choose One

  -d, --distance-pairs  Create a 2-dimensional index file with (N choose 2)
                        rows and 2 columns, where each row specifies a pair of
                        indices. All (N choose 2) pairs of the selected atoms
                        will be written.
  -a, --atoms           Create a 1-dimensional index file containing the
                        indices of the selected atoms.

  Selection Criteria: Choose One

  --minimal             Keep the atoms in protein residues with names CA, CB,
                        C, N, O, (recommended).
  --heavy               All non-hydrogen atoms that are not symmetry
                        equivalent. By symmetry equivalent, we mean atoms
                        identical under an exchange of labels. For example,
                        heavy will exclude the two pairs of equivalent carbons
                        (CD, CE) in a PHE ring.
  --alpha               Only alpha carbons.
  --all                 Selection includes every atom.
```