classicons: bug fixes and optimization

see also https://github.com/haste/oUF/pull/210

Differences to #210 are:

- in #210 it is not possible to override the default update
- moved vehicle checks in `Visibility`; got rid of `ToggleVehicle`
- add `PostVisibility` callback instead of calling `Update` after disabling it. This means a table look-up instead of two function calls for the layouts that don't need it and cleaner update for everybody
- don't enable for units other than the player (class specific resources are not visible for other units) and on classes not handled by the element
- some less table look-ups
- consistent coding style (single vs double quotes, brackets, blabla)
- documentation

What maybe should be added too is a possibility for an override for `Visibility`, but I assume if someone needs this, they probably use their own element.