Sites now only contain one username/password

- Groups now store sites in an array instead of a name-indexed hash
- Group#site now takes an index as its argument
- remove Group#site_names
- Group#remove_site now takes a Site as its argument
- removed login-related methods
- changed hook callbacks to only send the affected site, not its
  attributes
- Console methods now return Site objects instead of site name and
  username
- rename Site#change_username to Site#username=
- rename Site#change_password to Site#password=
- add Site#==, which returns true if other Site has the same name and
  username