Initial Vienna::Observable commit with specs

Vienna::Observable differs from stdlib Observerable as it allows
individual attributes to be observed using a block as a handler. This
makes it more powerful when dealing with long-lived apps which need to
connect models to view properties.