fixed new keyword collision when importing shd-library.h from a cpp file

Signed-off-by: Andrew Miller <amiller@cs.umd.edu>
preload prepends rather than appends

Signed-off-by: Andrew Miller <amiller@cs.umd.edu>
WIP support for FDs less than 1024

This is an initial attempt for Shadow to return file descriptors
less than 1024. We have to deal with a plug-in that may open
files since the OS will also return low numbered FDs. Our
approach is to open those files through Shadow so that Shadow
can create a mapping between OS and shadow FD to prevent
duplicates.

Current progress is that preloading open causes problems for
Shadow during the Topology initialization. When open is not
preloaded, or directed through the OS only, the --file
test completes successfully.

refs #214
build shadow in separate dir
include mode arg in open function

tmp files created by shadow while loading the topology now work
correctly. shadow --file works again.

refs #214
preload prepends rather than appends

Signed-off-by: Andrew Miller <amiller@cs.umd.edu>
fixed new keyword collision when importing shd-library.h from a cpp file

Signed-off-by: Andrew Miller <amiller@cs.umd.edu>
interposing new file functions

attempt to handle os files using virtual shadow descriptors

refs #214
Merge branch 'next' of github.com:robgjansen/shadow into next
write and read need to call the OS funcs when FDs are used

refs #214
intercept more functions that operate on FDs

refs #214
ignore eclipse generated dir
dont delete epoll descriptors until they are no longer pending

this is a bugfix without an issue number
intercept lseek correctly, preload dup calls

refs #214
intercept flock and translate shadow to os fd

refs #214
preload open64, small tweaks

-return closed descriptor handle to pool of available numbers
-fix off-by-one errors in shadow-os FD translation

refs #214
translate returned FDs on epoll_wait, fix FD recycling

shadow-plugin-tor minimal example currently works correctly.

closes #214
removing openssl preloading

plug-ins that need special optimizations can interpose on the
functions they require. the openssl funcs will be moved to the
shadow-plugin-tor code.

refs #211
more cleanup for openssl preload removal

refs #211
remove locking hack specific to openssl init/cleanup

refs #211