Fixed validation of method names.

- Disallows digits at the start of the name.
- Disallows ASCII control characters.
- Other illegal characters are already filtered out by IsFunction().
Removed some unneeded code from Object::SetItem.

- SetItem is only used internally and should never be passed a number.
- All string keys should be considered non-numeric as of commit 573f142e.
InsertAt/Push/RawSet
Remove/RemoveAt/Pop
Removed _ prefix from built-in Object methods except _NewEnum.
Updated parameter validation and error handling in Object methods.

- Ignore excess parameters, as with dynamic function calls.
- Throw exception for too few/invalid parameters.
- Throw exception for memory allocation failures.
Optimized code size at the expensive of a little performance.

Performance may be slightly higher for methods but lower for the
equivalent built-in functions (which are still faster than methods).
Removed underscore prefix from SafeArray method names except _NewEnum.
Merge branch 'alpha' into v2-new-gui-api