Fixing a few errors, adding support for attributedPlaceholder

I think that this may well introduce more bugs - notice that `storedText` is only updated if `[self.text length]` > `0`. If `self.text` has just changed to `@""`, `_storedText` will still contain whatever was there before.

My addition of `!= (_storedText.length > 0)` is an efficiency measure to avoid `[self toggleFloatLabel:]` being called *every* time the text changes. With this addition, it only gets called when `self.text` either changes from `@""` to `@"something"` or from `@"something"` to `@""`.