BufferGeometry: Clone attributes

Introduce BufferAttribute.clone().

Cloned attribute generated in BufferGeometry.clone() now remain instances of BufferAttribute. Previously, they were recreated as simple Object.

Make sure to go through BufferGeometry addAttribute() machinery when cloning the attributes.
Maybe this is simpler?

```javascript
return new THREE.BufferAttribute( new type( sourceArray ), this.itemSize );
```