Expose C++ namespaces as Python submodules

New OpenCV modules bring new namespaces, which were not reflected properly on the Python side. This PR adds following conversions for consts and functions:
- `cv::namespace::func` -> `cv2.namespace.func`
- `cv::namespace::Class::staticMethod` -> `cv2.namespace.Class_staticMethod`
- `cv::namespace::Class::SubClass::staticMethod` -> `cv2.namespace.Class_SubClass_staticMethod`
- `cv::namespace::Class::CONST_NAME` -> `cv2.namespace.Class_CONST_NAME`

**Discussion**: Const names, like `TermCriteria_EPS` were previously exposed as `TERM_CRITERIA_EPS`. ~~Currently I've disabled this conversion~~, so that Python names try to match C++ names more closely. This **may break some existing code**. Should we return to the previous behavior? What was the reasoning behind it? Should we expose `ClassName::CONST_NAME` as `ClassName_CONST_NAME` or as `CLASS_NAME_CONST_NAME`?

**UPDATE** Old constant names (`TERM_CRITERIA_EPS`) are preserved along with new (`TermCriteria_EPS`) for compatibility.