Reordering

Created a library Reordering which is ment to be an alternative for Binary and Continous.
Added the example traveling_salesman.hs to demonstrate how it works.

There is administrative work to do: I couldn't manage to import and export the functions the way I wanted. Thats why the example is in the wrong directory. Sorry, but I am still learning.
Too many `error` statements make me nervous. Such errors can be caught only in IO monad, which is unwieldy. Also this makes function not-total (partial). All funcstion should possibly be total. See http://www.haskell.org/haskellwiki/Avoiding_partial_functions

In this particular case, it's probably safe to define

```haskell
swapMutate [] = return []
swapMutate [x] = return [x]
```

It's true that the genomes are too short to swap anything, but strictly speaking `[]` is a permutation of `[]`, and `[x]` is a permutation of `[x]`. So it's a correct result if the user wants to use genomes that short. And it's better than having some program crash randomly because some library used `error` or `undefined`.

In short, don't use `error` in library code unless absolutely necessary. Exceptional situations should be encoded in the type of the result (use `Maybe`, `Either`, or a list to represent the result(s) which can be missing).