NQueens Solver

Find one solution in O(1)

```rust

[test]

fn find_solution() { for i in 0..=8 { match NQueens::solve(i) { None => println!("Rank {} has no solution", i), Some(s) => println!("\n{}", s), } } } ```

Find first 4 solution of rank 5

```rust

[test]

fn findpartial() { for (i, s) in NQueens::solveall(5).enumerate().take(4) { println!("Solution #{}:", i + 1); println!("{}", s); } } ```