change element struct
Separates elements by types
Centralizes exit(Sucess|Failure) in one place and updates parse_args

- Changes return values of `parse_*` funcitons and `elem_to_args` to `int`
  values in order to keep all the `exit` instructions inside `docopt()`
- Updates parse_args's skeleton to parse arguments, commands and double
  dashes.
Fixes  Issue #18
Updates parse_long algorithm

Previously it changed "--opt=VAL\0" to "--opt\0VAL\0".
Now, it works without touching in the argv vector
Updates test_docopt.c
Adds Command parsing
Merge pull request #19 from ffunenga/update-element-array

Separates Elements into diferent arrays by type, adds comand parsing, some cleanings/refactoring. Fixes #18.