space_function option to always include a space after function keyword

For anonymous functions, the only output option seems to be:

```
function() { ...
```

However, it is sometimes desirable to always include a space after the `function` keyword for readability. The `space_function` option (`false` by default, to preserve existing functionality) can be set to `true` to always include a space after the `function` keyword:

```
function () { ...
```

## Fringe Argument

Let's consistently define the syntax of a function block as being:

`function [<function name>]([<arguments>]) { ...`

The space after the keyword is always there, regardless of the function of being named or anonymous:

`function foo() { ...`, `function () { ...`

The syntax of a function call is:

`<function name>()`

For example:

`foo()`

When a function declaration is written without a space after the `function` keyword, it is reminiscent of a function call, while it is not:

`function() {`