Made source patterns more flexible

- Allow arrays and strings
- Allow ';' within array elements
- Added unit tests
- Made klr.cmd work again for incremental builds

#133