Optimization: Change dict built-in calls without positional argument to dictionary creations.

* Potentially not the most important thing, but may allow us to remove that
  path from code generation later on.

* Avoids complex handling of simple node or code duplication.
Don't complain about unresolved __import__ expressions when told to not recurse.
Tests: Added "recurse_none" mode to comparison.

* This allows to not use NUITKA_EXTRA_OPTIONS for that purpose.
Fix, using dictionary keys that cannot hash didn't raise exceptions.

* Some immutable constants are not hashable, use that property instead
  of being mutable to decide for certain optimization.

* Check if the key is known to be of hashable type, and if it is not
  the dictionary item can raise.

* Also prefer to check for "!= 0" over "== -1" under the assumption that
  this is easier to do and less vulnerable to bugs.
Fix, was not detecting errors when building set literals from not hashable elements

* Similar problem in nature to the dictionary issue previously fixed.

* We don't have test coverage for set literals, but this will be
  good anyway.
Minor cleanups
Tests: Have common code for searching matching filenames.

* This is in preparation to adding support for pattern usage.

* Also remove "@test" potentially left over by CPython tests in
  some cases. This has been observed with CPython32 test suite
  and is what triggered this change.

* More work will be needed to move all test runners to searching
  like this.
Tests: Make functions test directly executable with Python3 too.

* The parts that are Python2 specific were isolated to a dedicated test
  case.

* Also corrected typo for lambda function description in tests.
Add code for deep hash calculation.

* This should be a hash that covers all object types and allows to
  identify containers that were modified.

* To be used to detect constant corruption later on.
Optimization: Refactor slicing, cleaning up and harmonizing.

* Cleanup, no slicing nodes for Python3, these are to be handled on the
  re-formulation level entirely.

* For Python3, subscript with slice object is used even for slices
  that have no step.

* Move subscript handling to dedicated re-formulation file.

* Have dedicated code for index based deletion as we have had for index
  based assignment. This should speed those up.

* This may even resolve potential bugs with slice assignment from indexes
  to objects that have no slice access, but only subscript.

* Removes lots of duplicated code for slicing that did the slice object
  creation for Python3 by hand and at the end only.

* Still need to ultimately check for Python2 if slice access is even
  possible, and then fallback to slice objects right at the end. It's
  not the same thing, so we cannot do it generally.

* This should resolve fine detail differences in how Nuitka uses objects
  when slicing operations are performed with Python2.
Changelog updates
README: Typo fixes

Signed-off-by: kfei <kfei@kfei.net>
New pre-release.