Fields methods return only primitive types now

It's easier when the client wants to use these fields as another
type.

Also, we don't have nested subfields. So GetFieldsSlice could make
someone think that calling GetFieldsSlice on each item is valid, but the
truth is each item will always have only string values. Using primitive
types makes it clearer. If some day I add support for another level of
fields list then I think about a better recursive type