Start app after changing System.argv on 'mix run'
Fix `String.slice error`

    iex(76)> String.slice("string", 0..-2)
    nil # you see here is the issue, it shouldn't return `nil`
    iex(77)> String.slice("string", 1..-2)
    "trin"
    iex(78)> String.slice("string", -5..-2)
    "trin"
Add test case for  bug
Guarantee HashDict.equal?/1 returns proper value when comparing subsets

Conflicts:
	lib/elixir/test/elixir/hash_dict_test.exs
Update Gen_FSM example to be more explicit, clear.

By using a locally registered process name, this example has caused some
initial confusion to new users of Elixir. Using explicit PIDs will more
closely align with other examples, and reduce the number of things one
must understand in order to understand this example.
Merge pull request #2090 from bitwalker/gen-fsm-docs

Update Gen_FSM example to be more explicit, clear.