Direct Guest Memory Access for Shm-snapshot

##### Introduce non-copy guest memory read for shm-snapshot, which has drastically reduced memory read latency.

##### I add two APIs in this PR:
```
size_t vmi_get_dgpma(vmi_instance_t vmi, addr_t paddr, void **buf_ptr, size_t count);
size_t vmi_get_dgvma(vmi_instance_t vmi, addr_t vaddr, pid_t pid, void **buf_ptr, size_t count);
```
Both of which are similar to vmi_read_pa() / vmi_read_va(), except the non-copy manners.

##### Principle:
Medial address mapping strategy to ensure continous address mappings so that direct access can be possible.

##### Performance benchmark:
at least 5.6x speedup with minimal one page block in terms of the reduction of guest memory access latency.

![dgma](https://f.cloud.github.com/assets/667845/1337038/22e6ec56-35d0-11e3-9106-222963151d14.png)