Fix bug #4509967 (layout_gravity not always respected)

- fix FrameLayout
- code refactoring on LinearLayout
- add more unit tests

Change-Id: I49302582c61aa31a4eb7eded92327b10408f71a4
12 files changed