Avoid unnecessary calls to get_parent_xblock in _course_outline_json

When calculating _course_outline_json's `xblock_studio_url(xblock)` we hit Mongo database often, but mostly because methods used in `xblock_studio_url` (`xblock_has_own_studio_page`, `is_unit`) are calling `get_parent_xblock` a lot. This change tries to reuse information about parent_xblock when possible.

Reduces rendering time for Justice course from 5.5 to 3.2 seconds for me.

review: @cahrens @dan-f
We should use the ability to pass in the parent_xblock in create_xblock_info. Currently (for performance reasons), we have 

    if parent_xblock:
        is_xblock_unit = parent_xblock.category == 'sequential' and xblock.category == 'vertical'
    else:
        is_xblock_unit = is_unit(xblock)

Passing the parent_xblock into is_unit is nicer. Can you make that change too?