Add ChartOfAccounts model
Alter ChartOfAccounts to take arguments
Modify ChartOfAccounts: Args should be iterable
Modify ChartOfAccounts: Args length at least 2

The ChartOfAccounts will need an account id and an account title. If we pass in an iterable that doesn't have elements at least this long, raise an exception.
Add COA test args_in_should_equal_accounts_out
Modify COA to handle both ints and strings
Modify COA to handle missing account numbers
Add to_csv method to COA to write CSV output
Refactor test names for consistency
Add from_csv method to COA to read CSV input
Refactor test_should_output_csv_format_for_files
Refactor splitting core.py into model files
Refactor fix PEP8 violations in step definitions
Fix bug in to_csv (Use file handler, not filename)
Finish `Given` step "I have COA.."

This step is now in Green phase (of Red -> Green -> Refactor)

```
  Scenario Outline: Generating General Ledger file format          # features/command_line_ledger.feature:6
    Given I have a Chart of Accounts with '1010' and 'Petty Cash'  # features/steps/command_line_ledger.py:7 0.002s
```
Make lemonade proper package
Implement execute cmd `lemonade_generate_ledger`
Implement "will be a 'Ledgers/General' directory"
COA should support iteration

BDD: Red: And will have filename '.."
TDD: Green
Break tests.py into distinct files