Changed BoardModel to QAbstractListModel subclass

QML doesn't support tables, only lists. Therefore the BoardModel is responsible
for converting view indices (ListModel) to model row and column indices
(TableModel) in the underlying data structure.