Balance bug fix

Fix #59. `DoubleEntry::balance` and `DoubleEntry::account` now raise `DoubleEntry::AccountScopeMismatchError` if the scope provided is not of the same type in the account definition.

Eg:

```ruby
DoubleEntry.configure do |config|
  config.define_accounts do |accounts|
    user_scope = accounts.active_record_scope_identifier(User)
    accounts.define(identifier: :cash, scope_identifier: user_scope)
end

DoubleEntry.account(:cash, scope: User.new(id: 1)).balance  #=> Money.zero
DoubleEntry.balance(:cash, scope: User.new(id: 1)) #=> Money.zero

DoubleEntry.account(:cash, scope: Bank.new(id: 1)) #=> raise DoubleEntry::AccountScopeMismatchError
DoubleEntry.balance(:cash, scope: Bank.new(id: 1)) #=> raise DoubleEntry::AccountScopeMismatchError
```
For readability reasons I would prefer:

```ruby
case value
when @active_record_class
  value.id
when String, Fixnum
  value
else 
  raise AccountScopeMismatchError.new("Expected instance of `#{@active_record_class}`, received instance of `#{value.class}`")
end
```