cleanup: RenderTheme
cleanup: XmlThemeBuilder:

- rename from -> read
- cleanup theme attribute validation
add TextBuilder for Text styles
app++
start ThemeBuilder api
cleanups: theme/rule:

- rename destroy -> dispose
- use EMPTY_RULES array to avoid null checks
- squash: RuleVisitor
theming changes:

- select="first" also add its renderstyles when no sub-rule matched
  ... before they where only added when one subrule matched

- use select="when-matched" as last subrule in select="first" rules
  instead.
docs: MatchingCacheKey
move TagFilter stuff to OsmTileLayer
refactor: TileLoader.createLoader()
get theme from VectorTileLayer, instead of setting it on Loader
refactor: MapTile hold generic TileData - Testing
start TileLoaderHook:

- only create ExtrusionLayers when a BuildingLayer is attached
use Object as ID for TileData
docs: MapTile
PathLayer - inner class should be static
insert new hooks at front
move Text/Symbol handling to LabelTileLoaderHook
move Label/Symbol data from MapTile to LabelTileData
let TileLoaderHook stop further processing

- return false when no other loader hook should process
  the current element