State calls now fail if non-supported arguments are used. Fixes #6962.

* Removed `format_call` from `salt.state.State` since it was almost a one to one copy of `salt.utils.format_call`.
* The `format_call` in `salt.utils` was modified to accept initial return data(to provide the functionality from the removed `State.format_call`.
* While the function arguments are being queried/matched, those used are removed from a copy of the passed data. Once finished, any remaining keyword arguments which do not match those allowed on the `expected_extra_kws` keyword argument to `format_call` will raise a `SaltInvocationError`.

This will prevent any future bogus bug searching like what happened on #6912 because the wrong state function argument was being passed.
Updated docstring. Double to single quotes.
Instead of failing, let's return warnings to the user to know what's going on.
Use `salt.utils.is_windows()`.
Formatting, Coding Style and PEP-8.
Use the already existing `context` keyword.
`salt.utils.decorators` is now a package.
`SaltInvocationError` now also subclasses `TypeError`.
Improved logging messages formatting.
Error signatures changed, lets update test cases.
Improve `format_call` keyword arguments passing.

Pass keyword arguments as keyword arguments, not as arguments.
Add unit tests to `salt.utils.format_call()`.
Created `format_call_defaults()` as a helper to `format_call` and a future decorator.
Merge pull request #6968 from s0undt3ch/features/6962-extra-state-kwargs-error

State calls now fail if non-supported arguments are used. Fixes #6962.