Reimplement layout using Flexbox and Bootstrap

- rewrite the layout and css by using flexbox and bootstrap
- split Player and Application out from core.js