[WIP] DSSP secondary structure assignments

cc #447 and #399

(1) change kabsch_sander to not overload the semantics of the ca_indices array with -1s in the place of prolines.
(2) don't use _mm_rsqrt_ps. it wasn't accurate enough to pass the tests for DRID, so it's probably not a good choice here.
(3) small fix in proline handing in kabsch_sander.

todo:
- [x] deal with residues which don't contain the required atoms (ca/n/c/o). this includes solvent, and chain termi
- [x] lots more tests. particularly multi-chain and weird residues (i.e. above)
- [x] add comments
- [x] add license info, and references to Maarten's work
- [x] figue out msvc compilation issues
```
In [38]: np.array([['HHH'], ['EEE']])
Out[38]: 
array([['HHH'],
       ['EEE']], 
      dtype='|S3')
```