More Multimaps

Add better support for multimap deserialization. Specifically, the current implementation does not allow for the deserialization of multimaps into set-backed multimaps as a LinkedListMultimap is created every time. This implementation adds support for ArrayListMultimap, HashMultimap and TreeMultimap and maintains support for LinkedListMultimap. It also continues to default to LinkedListMultimap if none of the other implementations are better suited.