return '' if flag is string and empty

If we define a flag to be a string, it should always return a string.

Previously:
```javascript
parse([ '-s' ], { string: 's' }).s; // true
parse([ '-s ""' ], { string: 's' }).s; // ""
```

Now it correctly returns a string instead of a boolean when empty quotes are not specified:

```javascript
parse([ '-s' ], { string: 's' }).s; // ""
parse([ '-s ""' ], { string: 's' }).s; // ""
```

- - -

I didn't include cases when using joined flags such as `-art`. e.g.

```javascript
var argv = parse([ '-art' ], { 
    string: [ 'a', 't' ] 
})
```

In the above, `argv.a` will be `true`, and `argv.t` will be an empty string. They both should be empty strings as they are defined to be strings.

I am short on time and couldn't get the last (joined flag) case working. I'll update my fork later if someone else doesn't get to it before I do.