Refactor water-features

Dam, weir, lock:
* Add rendering for dam areas (supercedes and closes #227, based on code by
  @chrisfleming), dam and weir nodes, and lock_gate line
* Render weir in right layer (resolves #403)
* Change rendering of weir so it renders with small dashes
* Use marker instead of image for lock_gate node
* Add labels for dam nodes, dam areas, weir, and lock_gate
* Improve labels for dam lines and lock lines
* Remove labels for undocumented and less common waterway=lock

Groyne, breakwater:
* Render groyne/breakwater area the same color as groyne/breakwater way
  (resolves #893)
* Add label for groyne, breakwater, and pier (resolves #474)

Other:
* In general rewrite and clean up code