Fixed visibility, masking, and merging

- Visibility is now respected as a state
- Masking now works without keywords
- * can still flatten layers, hopefully we can find a better convention

Generally this removed the need for things like @@hidden and @@mask