Canfield-Staging-2 -> production: Graphics system updates

Please review this after #313 has been approved.

This update focuses on the graphics system:
- Network tanks now disappear when Tank.isHidden returns true (nice work by Aaron with implementing Tank.isHidden in #306)
- The local tank now is drawn at 60% transparency when Tank.isHidden returns true
- A background layer is now drawn behind everything. This currently uses the grass texture.
- Renamed Sprite.isEntityDisposed to Sprite.isDisposed, since this may or may not be delegated to an Entity, depending on the sprite type
- Wildcard isn't needed for sprites anymore: Use plain Sprite instead of Sprite<?>
- Added AbstractEntitySprite<? extends Entity>, which extends Sprite and is used by Entity-based sprites. Non-entity sprites inherit directly from Sprite. This further clarifies that sprites don't need to observe an entity.
- Sprites can now set their color tint and transparency
- Fixed clipping bug (data for twice as many sprites as needed was being sent to the graphics card)
- Fixed bug that prevented the camera controller from being attached to the tank sprite if the tank's starting x position was greater than two times the camera width
- Added 12 unit tests

Resolves or partially resolves #305, #259, #250