Adding support for named AMD modules. 

This pull request adds support for named AMD modules and addresses the pain point of using TypeScript-generated AMD modules when anonymous modules and out-of-the-box bundlers (like r.js) are not an option.   

This feature was previously discussed at https://typescript.codeplex.com/discussions/451454 and https://typescript.codeplex.com/workitem/285 where it was resolved as external/won't fix, but this feature was a big enough pain point in our recent adoption of TypeScript to warrant further investigation. 
@mhegazy  should we do any verification on amdModuleName user gave? Like it is all white spaces? all numbers? Should it always be identifier?