Remove unused methods from functional tests
Add additional scenarios for package tests

Adds functional test coverage for install, upgrade, remove, purge
actions when the specified package is installed at either the latest
version or at an older version.
Remove commented test code
Convert apt package provider to shellout

- Convert apt package provider to shellout. Improves content of error
  messages when apt fails.
- Refactor tests to avoid stubbing value objects