API: Add string extension type
This adds a new extension type 'string' for storing string data.

The data model is essentially unchanged from master. String are still
stored in an object-dtype ndarray. Scalar elements are still Python
strs, and `np.nan` is still used as the string dtype.

Things are pretty well contained. The major changes outside the new array are

1. docs
2. `core/strings.py` to handle things correctly (mostly, returning `string` dtype when there's a `string` input.

No rush on reviewing this. Just parking it here for now.