Updated poster to use CSS styles to hide instead of show/hide methods. fixes #1567

- Poster will now reshow itself when a poster source is set after a non-source
- Relying on CSS instead of show/hide methods now
- Made it so empty strings would hide the poster image element
- Updated a few component methods that made it annoying to create a mock player (@dmlap)
- Refactored poster image tests
We already test to make sure the audio class is used, which should be enough IMO. I think it's out of the scope of unit tests to test CSS behavior.