feat(offcanvas): initial component work

Made it screen size targeted, showing by default only in the left side
with a fixed width.
fix(docs): use proper style for navbar .btn-link
feat(docs): use offcanvas in the sidebar
test(offcanvas): fix bigger screen style removal

It was using jQLite's .remove() method while it's a raw DOM
element.
feat(offcanvas): add basic touch support

When ngTouch is available, if we detect a swipe of at least 30px,
we'll (de)activate the offcanvas menu, depending the side we have
swiped to.
feat(docs): allow touch support for the offcanvas

By adding ngTouch module, we can now have some basic swiping
to (de)activate the offcanvas.
This is since 0b9fec71910fc365cdb3fbc05e16266c1e7ba043.
fix(offcanvas): handle 2 or more instances properly

Previously, when 2 or more offcanvas instances were in the same
page, only the last of them would show up. This is because their
visibility was based in the .offcanvas element, which is body.
docs(offcanvas): add description and example
style(offcanvas.spec.js): remove unused service $window
test(offcanvas): test when ngTouch is not available
refactor(offcanvas): remove swipe target check

As it's still not a ready feature, we should remove the code for the
swipe target check.
That feature should allow for other elements to be scrollable in the
Y axis without being blocked by the swipe event.
Merge branch 'offcanvas'