Preserve name indices for duplicate names

Without this fix, ArraySet objects only added the first copy of a name
if the "names" array contained duplicates. This messed up indices into
the names array because the array was shorter than it should be. The
TypeScript compiler sometimes generates source maps with duplicate
names, causing a crash in SourceMapConsumer.
Deduplicate names for generation, also added tests
Hard-code test source maps to avoid breaking encapsulation
Merge branch 'master' of git://github.com/evanw/source-map into github-issue-72
Fixing up small style nits and linking relevant github issue and bugzilla bug in comment.
Merge branch 'github-issue-72'
Bump version number to 0.1.29