Remove extra action generation in "All Magics" menu population.

The function that populates "All Magics" and "CLASS magics" menus
used to create two separate QActions: one for the all-menu and one for class
menu. There is no apparent reason for doing that, since single QAction can
happily serve multiple menus and buttons.
Merge commit '55a3270aa4724bbea6a0ae0088f770c46aabf04a' into patch_2565_sidewindow
Introduce a doclkable widget that will substitute "all magics" menu.

Features:
a. filter by regexp
b. filter by class
c. double click pastes
d. push buttons to paste and run magics
Remove "all magics" menu stuff.
Move Maigic Helper into separate class/module/file
Eliminate main window logic from MagicHelper.

The only remaining logic in MagicHelper was calling kernel upon update.
Moved the call to main window using new special signal 'readyForUpdate'
Upon receival of this signal main window will query the kernel and call
MagicHelper.populate_magic_helper()
Added more documentation for MagicHelper.
Updated file headers according to IPython Copyright Policy
Updated file header according to IPython Copyright Policy
Remove author lists from file headers.

Requested by @takluyver on code review.
Rename pyqtSignal to Signal.

The latter is exported by IPython qt compatibility layer.
Merge pull request #5751 from kloper/patch_2565_sidewindow

 Issue 2565, take two: provide docking widget that allows to search, paste and run magic commands