Enable more linters, address the issues and do a major naming refactor
to use golang lower camelCase identifiers for types, functions, methods
and variable names.
Also:
* Clean up inline generation so it doesn't rely on temporary variables.
* Remove unused functions generated by inline.pl.
While not specified in the ECMA specification the current index has been
typed as number by others, so match this instead of passing as string.
Fixes#177
Use time.UnixMilli instead of UnixNano for time calculations to avoid
underflow / overflow issues.
BREAKING CHANGE: Use a GMT fixed time zone for UTC to mimic toUTCString
behaviour of Javascript which outputs in GMT not UTC.
Fixes#302
Add support for direct use of push to go slices without converting to
array using .slice().
Fixes#357
Also:
* Add classGoSlice and use it, to make it clear the type when debugging.
Enable the whitespace linter and fix the errors resulting from it.
Also:
* Remove unneeded golangci-lint config for disabled linters.
* Correct test number for panic in previous commit.
Fix array writes not being persisted by passing in writeable
reflect.Value when available instead of .Interface() which looses that
property.
Also:
* Use value.IsValid() instead of comparison with zero entry.
* Use propertyLength instead of literal.
Fixes#386