create table with custom primary_id

Add an option to create a table with custom primary_id instead of mandatory automatic 'id'. the type of custom primary_id can be a string (i.e. VARCHAR(255)) by default or an integer via integer flag.  The caller will be responsible for the uniqueness of manually specified primary_id.

This custom id feature is only available via direct create_table call.