Add proper quoting of object names.

The schema and table names in the code are not properly quoted which can cause
problems when deploying scripts containing object names with spaces and other
reserved characters in SQL Server. A method has been added which wraps the object
names in square brackets and escapes the special characters properly where needed.
Add Optional Trim of the Object Name in the QuoteSqlObjectName

The standard way of working is to trim the object name, but this might not be desired.
To make it easier to switch to quoting without trim, an overload has been added which
allows you to specify if the name should be trimmed or not.
Update documentation and parameter name

The QuoteSqlObjectName functions are missing documentation which has been added
so it becomes clear why the SqlCommandBuilder.QuoteIdentifier() method was not used. (Thanks to https://github.com/AdrianJSClark for letting me know it exists ;) )
Change SqlObjectParser to public

The SqlObjectParser class and ObjectNameOptions enum are made public to provide
them as tools for developers and to avoid having to use the "InternalsVisibleTo"
assembly property for testing purposes.