Z index

Covers https://github.com/KSHSK/WAVED/issues/168

-Added a new type of Property called ButtonProperty that takes in a function to execute on click.
-Added a new property to Property called 'visible'. This allows for hidden Properties such as the new z property in WidgetViewModel. The underlying value for z is manipulated by the two ButtonProperty instances called zIncrement and zDecrement so we don't need to actually show them the value of z. This also allows us to add z to the WidgetViewModel.properties list without it rendering. That way, it will still be observed by HistoryMonitor.
-Cleaned up some warnings from previous commits