- Overhaul of the Signal parsing layer (SignalArrayWrapper)
  -- No longer cares about position of the is_gsm bool as it's not important
  -- Adjust filtered array size to account for devices with more than the standard readings
  -- Adjust for devices with readings past where is_gsm is on normal devices (mostly HTC, Moto, Huawei and others)
  -- Fix bug in non standard devices that add readings in this format past is_gsm:
       is_gsm.stupid_value.another_stupid_value.etc

- Added async methods for tasks that are likely to take a bit longer, such as parsing the signal values.

- Converted main activity table layout to a grid layout for better performance.

- Converted SignalListener to a Singleton to prevent any multiple instances from happening.