waitgroup 0.1.1

async waitgroup for a collection of task to finish
Documentation
```rust
pub struct WaitGroup {};
pub struct WaitGroupFuture {};
pub struct Done {};

impl WaitGroup {
	pub fn done(&self) -> Done;
}

impl Clone for Done;
impl Drop for Done;
impl IntoFuture for WaitGroup {
	type Future = WaitGroupFuture;
	fn into_future(self) -> Self::Future;
}

let wg = WaitGroup::new();
for i in 0..10 {
	let done = wg.done();
	task::spawn(async move {
		drop(done);
	});
}

wg.await;
```

pub strcut BuildOption {
	enable_gas_metering : bool,
}

impl BuildOption {
	pub fn new() -> BuildOption {
		BuildOption { enable_gas_metering: false}
	}

	pub fn gas_metering(mut self, enable : bool) -> Self {
		self.enable_gas_metering = enable
		self
	}
}

BuildOption::new().enable_gas_metering()