Refactor provider for firefox_package

Known issues:
 - No support for MacOS X.
 - Currently requires an internet connection.
 - Windows may not fully support multiple installations of Firefox.