Command-line application framework.

Example

A simple command-line application could look something like this:

```rs use rawcmd::{Command, Flag, Intent};

let app = Command::withname("foo") .withdescription("Command 1") .withflag( Flag::withname("flag1") .withalias("f1") .withdescription("Flag 1") .withvalue(true, Some("default")) ) .withsubcommand( Command::withname("bar") .withdescription("Command 1:1") .withflag( Flag::withname(flag2) .withalias("f2") .withdescription("Flag 2") ) .withresolver(&|| { Ok(2) }) ) .withresolver(&|| { Ok(3) }) .run();

match app { Ok(v) => println!("OK: {:?}", v), Err(v) => println!("Err: {:?}", v), } ```

The function with_resolver accepts different resolver types:

```rs // closure command.withresolver(&|| { Ok(1) })

// function pointer fn resolver(: Intent) -> Result { Ok(2) }; command.withresolver(&resolver)

// struct with Resolver trait use rawcmd::Resolver; struct Foo {}; impl Resolver for Foo { fn resolve(&self, : Intent) -> Result { Ok(3) } } command.withresolver(&Foo{}); ```

TO-DO