extension: Rework extension internals

This is complete re-write of the extension. It fixes the following
issues found in extensive testing.
- Split the extension and Agent into 2 files for better readability.
- Remove the extension button when connmand is not running. This is the
standard behavior of system extensions.
- Make sure all strings are translatable.
- Make sure SSIDs with special characters are handled properly.
- Services menu is updated when any technology is Removed
- When services are added to menu, they are not added to the services db
here fixing issue with double services list seen by user.
- Any pending agent request is handled when extension is disabled.
- Clean up code.