Adding default length to gen_string

Also updated the supporting functions to the same default length. Made minor adjustments to documentation. Finally, added additional test for default length.
This method is a convenience wrapper, and it should not override the default lengths provided by the called functions. For example:

```python
def gen_string(str_type, length=None):
    ...
    if length is None:
        return method()
    return method(length)
```