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
It's a little less destructive, which sounds nice. I'd definitely pull it up into Component in that case, though. We'll forget about it here :)