Enhance the PaletteData class to make it parcable, and change the
save/restore code in main activity code to fit this change
fix the issue that the current palette data cannot be saved correctly
after the clear() operation performed
Works:
1.add get() method for PaletteData source so that we could fetch a
palette data from database by its id
2.refactor on picture loading and photo taking logic to make sure we
could get the correcnt image url by both of these two actions
3.parse the image name as the initial palette data title

Known issues:
1.sometimes the image filename cannot be parsed correct (we then will
get "untitled" title name when saving the palette data into datagbase)
2.the orientation of the token picture is incorrect when it is protrait
in camera