Attribute bindings with a falsy value should always remove the attribute...

The documentation currently states that using a boolean will add or remove a given attribute. However, under the hood we're really dealing with attributes vs properties. This presents an issue if my bound value goes from being a string to a `false` bool, which will *not* remove the attribute as expected. However, setting a string value to `null` or `undefined` will remove the attribute.

Ultimately, setting a bound attr to false should *always* remove the attribute from the element, regardless of whether it's setting a property value.

Example:
controller:
 ```javascript
...
myAttr: 'something'
...
 ```
template:
 ```
<button {{bindAttr data-my=myAttr}}>
 ```
output:
 ```html
<button data-my="something">
 ```

then:
 ```javascript
controller.set('myAttr', false); //I want to remove this attribute
 ```
currently output is still:
 ```html
<button data-my="something">
 ```
but it should be:
 ```html
<button>
 ```