Add task to TODO list.
Change primary keys on currencies and countries from code to id field.

Changes:
* Usage of code columns as primary key for currency and country isn't a good idea.
  It's a best practice to select primary keys for tables independent from external
  world, because changing records primary keys cause a lot of problems on migrations.
  Aside of that Ruby on Rails and FactoryGirl worked better with integer primary keys.
  Taking into account all that factors I've refactored relationship
  between countries and currencies using integer primary keys.
  I've changed some migration directly instead of generation new ones because
  project haven't been deployed anywhere and it's should be save to do.
 * Add "id" fields to countries and currencies tables and make it a primary key
   instead of "code" fields.
 * Fix Country and Currency models accordingly to changes in tables.
 * Fix DataUpdater to properly establish relation between Currency and Country records.
 * Make "name" and "code" fields not null on currencies table.
 * Make "name" and "code" fields not null on countries table.
 * Add unique index on "code" field in countries and currencies tables.
 * Make "currencies.country_id" FK not null as currency have to always have a
   country it belongs to.
 * Update db/schema.rb
 * Fix currency factory model after prevent nullifing of currencies.country_id field.
 * Fix broken tests.
Move task from TODO to CHANGELOG.
Add task to TODO list.
Change collecting/visiting functionality to make it authenticated user aware.

Changes:
* Introduce CollectionItem model to establish relation between currency and user.
* Disable ability to edit countries' name and code, because list of countries
  is common for all users and populated on application initial deployment
  from 3-rd party service and stay stable along the application work.
* Remove CountriesController#create because it is not used. Also there is no
  add country page wich would submit form to #create action.
* Track visitation/collection through record presence in collection_items table.
* Add BaseFormObject class to move out common functions from concrete form objects.
* Add CountryFormObject to replace country edit page and still be able to track
  country visitation.
* Use Virtus for form object attributes.
* Fix visited countries counter in ContriesController#index action to count
  items from current user list.
* Fix collected currencies counter in CurrenciesController#index action to
  count items from current user list.
* Use CountryFormObject in ContriesController's #edit and #update actions.
* Remove .visited and .not_visited scopes of Country model which operated on
  common list of visited countries.
* Remove .collected, .not_collected, collected? methods of Currency model
  which operated on common list of collected currencies.
* Add #visited? and #collected? methods to User model instead of remove scopes
  and methods in Country and Currency models.
* Add tests for User#visited and User#collected? methods.
* Remove :create action from routes for CountriesController.
* Remove "countries.visited" column as visitation and collection tracked through
  collection_items table per collector base.
* Add Cucumber test to verify that countries marked as visited for one
  collector does not marked for another.
* Replace hardcoded url in Given statement with appropriate path helper.
* Fix broken RSpec tests.
* Fix broken Cucumber tests.
* Remove RSpec tests for #create action of ContriesController.
Move task from TODO to CHANGELOG.