Changes `private` to `protected` protection modifier in `DynamicModel.BuildSelect`

I think it would be useful for custom models inheriting from `DynamicModel` to have access to `BuildSelect` method. This is the use-case where I found it useful to call `BuildSelect` from my model:

I have a ClientBox table, which is merely a many-to-many relationship to Client and Box, and wanted to override
`DynamicModel`'s `All` method to return the combined tables, not the relationship fields. So I went:

    public override IEnumerable<dynamic> All(string where = "", string orderBy = "", int limit = 0, string columns = "*", params object[] args)
    {
        var tableCombination = @"Client INNER JOIN Client_Box ON Client.id = Client_Box.id_client
                                 INNER JOIN Box ON Client_Box.id_box = Box.id";
        string sql = BuildSelect(where, orderBy, limit);
        return Query(string.Format(sql, columns, tableCombination), args);
    }

With `BuildSelect` being `private`, child classes can't take advantage from it and this kind of overriding.