Relax the version requirement on the array package.

Some of the packages I included in brsim.cabal actually depend on older
version of array than the one I have installed, which made brsim depend
on multiple versions of the same package.
Remove the redundant import of System.IO.
Listen to some of hlint's suggestions.
Add the interface for running stuff with timeout.

This commit does not add any meaningful implementation of withTimeout.
Implement withTimeout.
When the timeout expires, remind the user that he might have chosen the wrong format.