refine app factory

- force assign default package_name when passing 'None'
- celery didn't have 'config' object, should be 'conf'
add singleton
temporary commit