add basic framework

1. add object life cycle model, ref count with auto release pool.
2. add singleton template
3. build all glfw code into application class.