More tests!

Now that we have the SamBuilder class, we can test most of the Sam API. This pull-request includes several tests to all parts of the Sam API in a major effort towards completing #4.

Since these are all small changes, and the commit messages are self explanatory, I found it better to maintain it in separate commits.  If the reviewer prefers, I can squash it all into one and rewrite the message.

ps: I sneak fixed a memory leak in variant.cpp generic_string_info_field() in the second commit. 
We really need to find a way to refactor this generic_info_field() function to be less expensive -- the memory allocation/deallocation here was showing up prominently in Joel's profiling results the other day, as I recall.