Merge pull request #1152 from petehuang/add-palindrome-products-elixir

Add palindrome products exercise for elixir
Move demo code into handler.

I am slowly introducing duplication because the abstractions don't
seem to be right, and duplication might let me see what the actual
abstractions that I need are.
Allow team owner to destroy their team
Reformat go test fixtures
Reformat go assignments
Correctly set the team slug if name is empty
Adding unique index on team slug.
A validation at the model level might not be enough to prevent duplicate records in the db. Adding unique index fixes this case.
Re-approve api tests
Merge pull request #1155 from Tonkpils/fix-possible-race-condition

Adding unique index on team slug.
Merge pull request #1154 from Tonkpils/fix-empty-name

Correctly set the team slug if name is empty
Merge pull request #1153 from Tonkpils/destroy-team

Allow team owner to destroy their team
Delete dependency in demo test
Expand fake curricula
Refactor display of current/completed exercises

* Use tables instead of `ul`'s for display of completed exercises.
* Add "View someone else's solution to this exercise" link to the completed
  exercise page (to replace gallery links).
* Create "Profile" presenter to clean up view code for account and user
  pages.

Closes #1151
Merge pull request #1156 from rsslldnphy/feature/account-page

Refactor display of current/completed exercises
Always deliver next available exercise when fetching.

Submitting a single iteration of an exercise automatically unlocks the
next one.

This makes `peek` superfluous.
Remove concept of 'unlocking'
Fix account link. Fixes #1157
Get rid of locksmith module

Most of it was no longer used. Inlined the rest into user.
Ditch problem set