Implement two new sources (data and obj) as well as the existing file source

This fixes #9. Steps taken:

1. Added function parseSource() to take a source (can be a string to be backwards compatible or an object containing either file, data or obj property). It returns the corresponding RAML object.

2. Refactored HTML generation out in its own function compileRamlObj().

3. Updated parseWithConfig() to invoke parseSource() followed by compileRamlObj() with the RAML object.

4. Updated main call to parse() to reflect that source argument now can be an object.

5. Added parseSource() to exported functions.