Added initial shell implementation.  

Probably needs better error handling.  Also, implementation isn't very elegant.
@bsoetaer