Refactored MerkleTree

Replaced MessageDigest with abstract trait CryptographicHash.
Default implementation of MerkelTree will use the SHA1Hash implementation
of CryptographicHash.

Replaced input from List => Seq, following the rule that you
should accept the most generic thing that provides what you need,
which in this case is a defined order of elements.

Also improved MerkleTreeApp.