Allow String type to optionally deserialize empty strings

- Added optional keyword argument `allow_empty` to `colander.String`
  schema type. When True, deserializes an empty string to an
  empty string. When False (default), an empty string deserializes to
  `colander.null`.

I think this satisfies and supercedes https://github.com/Pylons/colander/pull/146.