Add bower.json
add smart property
add more magic to cover some edge cases
Add tests from ember core