awesome: update keybindings

* focus/swap by direction
* add keybinds for scratchpad
* add keybinds for custom programs

awesome: formatting
awesome: add rules
awesome: add custom widgets, part1
awesome: restore previous tag if # is active
awesome: widgets WIP
awesome: functions.lua added
awesome: fix path, organize includes
awesome: add init functions, update widgets

* use init functions to set certain variables
* reduce code needed for existing widgets
* add screenshot
awesome: update volume widget on keypress
awesome: add resize/move functions
awesome: preconfigure widgets
submodules: update
awesome: add functions and signals

* toggle titlebar
* message handling
awesome: add message widget
awesome: make battery widget optional
awesome: make network widget optional