Added limited general-basis and ECP

This adds two things:

1) You can supply a general basis (i.e. each element has a different basis set) as long as it's implemented in `basdict`.  The keys in `basdict` are custom basis names (not recognized by Q-Chem), and the values are are dictionaries mapping each atomic number to its basis name.

When the Q-Chem input file is written, it will contain the following (for example):

```
$rem
...
basis gen
...
$end

$basis
H
6-31g*
****
C
6-31g*
****
Fe
lanl2dz
****
$end
```

This does not implement "mixed" basis where different atoms with the same atomic number can have different basis sets.  I think that would be more complicated, requiring the user to specify which atom numbers get which basis functions when the object is created.

2) Effective core potentials, if any, are automatically determined from the basis name.