added database class, split from database_initializer, to properly separate their roles.
fixed ARGV calls to use 'send', changed puts in category.list() to a return value.  Other cleanup